ModRex

From OpenSimulator

(Difference between revisions)
Jump to: navigation, search
m (See Also: added link to orphaned simxtd script page)
 
(75 intermediate revisions by 14 users not shown)
Line 1: Line 1:
==Overview==
+
__NOTOC__
ModRex is a joint effort between RealXtend and OpenSim developers to make it
+
{{Quicklinks}}
possible to join the RealXtend viewer to the OpenSim codebase. The RealXtend
+
 
viewer is based on the opens source [http://www.ogre3d.org OGRE game engine]
+
{{archive}}
and differs from the Linden Lab viewer in several ways. The most distinct
+
'''Purpose:''' The information on this page is out of date. However, it may still hold value to some people (examples are chat logs, version history, or OpenSimulator 0.6x specific info) or needs to be preserved for other reasons. It should be marked as archived information to prevent confusion.
 +
 
 +
<br />
 +
 
 +
== Overview ==
 +
[[Image:modrex.jpg|250px|thumb|left|ModRex with mesh support, running on Linux]]
 +
ModRex is a joint effort between RealXtend and OpenSimulator developers to make it
 +
possible to join the RealXtend viewer to the OpenSimulator codebase. The RealXtend
 +
viewer employs the open source [http://www.ogre3d.org OGRE 3D engine]
 +
and differs from the Linden Lab viewer (LLviewer) in several ways. The most distinct
 
difference is in the new rendering potential offered by OGRE. When using
 
difference is in the new rendering potential offered by OGRE. When using
 
RealXtend as a viewer for OpenSim, one obtains real-time shadows, improved
 
RealXtend as a viewer for OpenSim, one obtains real-time shadows, improved
lighting simulation, and more importantly, the OGRE mesh. The mesh is hierarchical
+
lighting simulation, and more importantly, the [http://www.youtube.com/watch?v=yEXqiv2_kbE&feature=channel_page OGRE mesh]. The mesh is hierarchical
(sub-meshes) and can include a skeleton for defining avatar motion and dynamics.
+
(multiple meshes and sub-meshes) and can include a skeleton for defining avatar motion and dynamics.
  
Here is an image built from using Opensim+ModReX [[image:modrex.jpg|250px|thumb|left|ModRex with mesh support, running on Linux]] and a [http://www.youtube.com/watch?v=yEXqiv2_kbE&feature=channel_page movie] to illustrate some of the mesh and lighting effects in the viewer:
+
ModRex is important to the OpenSimulator community mainly because, like the base
 +
opensim code base itself, the RealXtend viewer is open source and breaks away
 +
from some of the key contraints imposed by the LLviewer, such as inability to
 +
create meshes, shadows, realistic avatars, and advanced lighting effects. ModRex
 +
while not part of the viewer, is the glue that connects the viewer to the opensim
 +
trunk code.
  
To use modrex, you need the following: (1) The RealXtend viewer, (2) ModReX, and (3) OpenSim.
+
and a to illustrate some of the mesh and lighting effects in the viewer:
The viewer (1) is downloaded from [http://www.realxtend.org/page.php?pg=downloads here]. Make sure to download the latest viewer and any patches that have been added since that viewer version. They should be located on in the sourceforge page. For Windows, the viewer is run
+
directly as an .exe, and for Linux, wine is used to launch the viewer. OpenSim (3) is
+
compiled as instructed elsewhere in this wiki (Get OpenSim and Building). The setup
+
for ModRex is documented below for Windows and Linux.
+
  
==Setup==
+
To use ModRex, you need the following:
===Windows===
+
* [http://realxtend.org/download/ RealXtend viewer (CodeName: Tundra)]
The following procedure is used to set up modrex:
+
* Alternatively you can also use the new [http://wiki.realxtend.org/index.php/Getting_Started_with_Naali Naali viewer]
 +
* [http://forge.opensimulator.org/gf/project/modrex/ ModRex]
 +
* [OpenSim-SVN (rev. 8814+)
 +
* [http://www.mono-project.com/Main_Page Mono] (Linux)
 +
* [http://nant.sourceforge.net/ NAnt] (Linux)
  
1. Download and build the latest version of opensim. To differentiate it from other opensim builds that you may have, call it opensim_modrex, for example. Then, you will remember that this build requires the RealXtend viewer. We'll assume you have your opensim implementation
+
== Links ==
stored in C:\opensim_modrex.
+
* [http://forge.opensimulator.org/gf/project/modrex/ Source Code]
2. Prebuild (i.e., running Prebuild2008) and compile as you would do normally just to make sure that this build of opensim is executing. Start up opensim and make sure that you can
+
* [http://wiki.realxtend.org/index.php/Features_supported_currently ModRex Features/Status]
view the region using the LLviewer.
+
* [http://www.realxtend.org Main RealXtend]
3. Create a new folder such as C:\modrex, and then get the latest version of modrex into
+
* [http://wiki.realxtend.org/ RealXtend community wiki]
this folder. Modrex is obtained using a version of svn,
+
such as TortoiseSVN. The checkout URL is http://forge.opensimulator.org/svn/modrex.
+
You will need to enter "anonymous" when asked to check out modrex. Make note of the
+
revision of modrex after all files have been downloaded, just for reference in case
+
you encounter difficulties and need to report a concern or bug.
+
4. Copy the folders located in C:\modrex\trunk to C:\opensim_modrex\opensim
+
5. Run the prebuild (if using VC # 2005) or prebuild2008 (if using VC# 2008) that
+
is now located  under C:\opensim_modrex\opensim\ModularRex.
+
6. Go to your c:\opensim_modrex\bin, launch VC# on the OpenSim solution, and enter 3 projects to the existing OpenSim solution (right-mouse click on the solution name, Add->Existing Project): ModularRex (found in C:\opensim_modrex\opensim\ModularRex),
+
ModularRex.Nhibernate (found in C:\opensim_modrex\opensim\Nhibernate), and
+
ModularRex.RexFramework (found in C:\opensim_modrex\opensim\RexFramework).
+
7. Re-build the opensim solution. There should not be any errors. This, in turn, will
+
add new region modules specially for the RealXtend viewer inside of C:\opensim_modrex\bin.
+
  
 +
== Setup ==
  
===Linux===
+
First launch realXtend authentication and avatar storage servers. You can download them from [http://sourceforge.net/projects/realxtendserver/files/ SourceForge project page]. Documentation for these servers can be found from [http://docs.realxtend.org/ realXtend user documentation wiki].
mkdir /opt/opensim opt/opensim/simulator /opt/opensim/authentication /opt/opensim/avatarstorage /opt/opensim/builds
+
cd /opt/opensim/builds/8218
+
svn co http://opensimulator.org/svn/opensim/trunk .
+
sh runprebuild.sh
+
nant
+
mkdir modrex modrex/build
+
cp -R bin/*.dll modrex/build
+
cd modrex
+
svn checkout http://forge.opensimulator.org/svn/modrex/trunk .
+
cd ModularRex
+
vi prebuild.xml
+
* Change each ../../../bin to ../../build, and each ../../bin to ../build, save and exit
+
mono ../../bin/Prebuild.exe /target monodev
+
* Open /opt/opensim/builds/8218/OpenSim.sln with MonoDevelop
+
* Add existing project > modrex/ModularRex/RexFramework/ModularRex.RexFramework.mdp
+
* Add existing project > modrex/ModularRex/NHibernate/ModularRex.NHibernate.mdp
+
* Add existing project > modrex/ModularRex/RexOdePlugin/ModularRex.RexOdePlugin.mdp
+
* Add existing project > modrex/ModularRex/ModularRex.mdp
+
* Change the runtime version for these projects to mono 3.5
+
* Replace the broken OpenSim reference in the ModularRex project with the equally named OpenSim project
+
* Replace the broken OpenSim.Region.Physics.Meshing and OpenSim.Region.Physics.OdePlugin references in the RexOdePlugin project with the equally named OpenSim projects
+
* Build the modularRex projects. If no errors occured, The dll's are stored in /opt/opensim/builds/8218/modrex/build
+
cp /opt/opensim/builds/8218/modrex/build/ModularRex.* /opt/opensim/builds/8218/bin
+
* Copy python-engine dependencies
+
  cp -R /opt/opensim/builds/8218/modrex/ModularRex/RexParts/RexPython/Resources/* /opt/opensim/builds/8218/bin/ScriptEngines
+
cd /opt/opensim/builds/8218/bin
+
cp OpenSim.ini.example OpenSim.ini
+
* edit OpenSim.ini, and add this:
+
;This goes under [startup]
+
rex_python = true
+
[realXtend]
+
enabled = true
+
db_connectionstring = "MySQLDialect;MySqlDataDriver;Data Source=localhost;Database=opensim;User ID=root;Password=mypw;"
+
* Copy the modrex enabled OpenSimulator to the production dir
+
cp -R /opt/opensim/builds/8218/* /opt/opensim/simulator
+
* Add the [[rex mysql]] tables to the opensim database
+
* Download and build the authentication service
+
svn co https://realxtendserver.svn.sourceforge.net/svnroot/realxtendserver/authentication/tags/0.4 /opt/opensim/authentication
+
cd /opt/opensim/authentication
+
mono bin/Prebuild.exe /target nant
+
nant
+
* Create a mysql database "authentication"
+
cd bin
+
mono Authentication.exe
+
* Setup authentication
+
MySql_SqlHandler.dll (or SQLite_SqlHandler.dll. MySql_SqlHandler.dll gives not implemented messages but seems to work ok)
+
<enter>(AuthenticationEngine=AuthenticationEngine.dll)
+
<enter>(logging enabled=False)
+
<enter>(def. region x 1000)
+
<enter>(def. region y 1000)
+
<enter>(avatarstorageurl 172.16.1.65:10000)
+
<enter>(default gridurl 172.16.1.65:9000)
+
<enter>(default dns)
+
<enter>(dbserver 127.0.0.1)
+
<enter>(dbname authentication)
+
<enter>(dbuser root)
+
*******(dbpw for root)
+
172.16.1.65 (httpsettings LAN-IP)
+
''The authentication daemon should run by now''
+
* Create a user in the authentication screenconsole
+
create user
+
  
* Download and build the avatarstorage service
+
After successfully launching authentication and avatar storage server, build ModreX according to instructions in [http://wiki.realxtend.org/index.php/Building_ModreX realXtend wiki]. To configure ModreX follow the instructions in [http://wiki.realxtend.org/index.php/Configuring_ModreX this wiki page].
svn co https://realxtendserver.svn.sourceforge.net/svnroot/realxtendserver/avatarstorage/tags/0.4 /opt/opensim/avatarstorage
+
cd /opt/opensim/avatarstorage
+
bin/Prebuild.exe /target nant
+
nant
+
* Create a database "avatarstorage"
+
cd bin
+
mono AvatarStorage.exe
+
* Setup avatarstorage
+
MySql_SqlHandler.dll
+
<enter>(AuthenticationEngine.dll)
+
<enter>(Inventory True)
+
<enter>(PersonalInventoryService.dll)
+
PersonalInventory.SQLITE.dll
+
<enter>(logging_enabled False)
+
<enter>(dbserver 127.0.0.1)
+
avatarstorage (dbname)
+
<enter>(dbuser root)
+
********(dbpw root)
+
172.16.1.65 (httpsettings LAN-IP)
+
<enter>(http port 10000)
+
<enter>(ssl False)
+
''The avatarstorage daemon should run by now''
+
* You can use this [[rex serverscript]] to manage and start the services(uses screen)
+
Most important screen-commands are:
+
screen -list (shows screen sessions)
+
screen -r screenname (attaches to the screensession)
+
ctrl-a + d (detaches from the screensession)
+
  
the 'Account' part is the first part in your rex-username(account@myauthenticationdaemonuri)
+
If any bugs occur, please report them to [http://forge.opensimulator.org/gf/project/modrex/tracker/ ModreX bug tracker]. Note that to run realXtend 0.4 series viewer on Linux, you need to follow [[RealXtend Viewer Linux|these instructions]].
* Check in the Simulator console if everything started the way it's supposed to
+
  
''Once the three services are running, an initial user was made, fire up the realXtend client from wine and login with your credentials.''
+
== Known Issues ==
 +
* Some parts of the LLViewer interface do not yet exist in the RealXtend viewer. This is related to ModRex not allowing the viewer to set or retrieve certain data.
 +
* Inter-mesh collisions not yet implemented, although avatar w/ primitive collisions work
 +
* Shift-copied Objects may loose their texture after a sim restart
  
==Known Quirks==
+
== Recent Fixes ==
* Shift-copy a mesh leaves a prim behind
+
* Multiregion Support with RexQueue
 +
* Multiple standalones on one machine supported
 +
* NHibernate-db supports mysql, sqlite and mssql2005. Meshes are persistent
 +
* Mesh collisions with primitives work
 +
* Python scripting works for the most part (some functions are not working yet)
 +
* Shift-copy keeps mesh as primdata
 +
* OpenSimulator library useable now
 
* Avatar is stored, but appearance changes only after viewer restart
 
* Avatar is stored, but appearance changes only after viewer restart
  
==Recent Fixes==
+
== See Also ==
* NHibernate-db supports mysql, sqlite and mssql2005. Meshes are persistant
+
 
* Mesh collisions work
+
* [[Rex_serverscript]] - Example Linux SysVinit startup scripts for ModRex
* Python scripting works
+
* [[Rex_mysql]] - Example MySQL table definitions for ModRex
 +
* [[Simxtd]] - BASH script for building and install OpenSimulator with ModRex and RealXtend support

Latest revision as of 08:19, 18 September 2020

Purpose: The information on this page is out of date. However, it may still hold value to some people (examples are chat logs, version history, or OpenSimulator 0.6x specific info) or needs to be preserved for other reasons. It should be marked as archived information to prevent confusion.


[edit] Overview

ModRex with mesh support, running on Linux

ModRex is a joint effort between RealXtend and OpenSimulator developers to make it possible to join the RealXtend viewer to the OpenSimulator codebase. The RealXtend viewer employs the open source OGRE 3D engine and differs from the Linden Lab viewer (LLviewer) in several ways. The most distinct difference is in the new rendering potential offered by OGRE. When using RealXtend as a viewer for OpenSim, one obtains real-time shadows, improved lighting simulation, and more importantly, the OGRE mesh. The mesh is hierarchical (multiple meshes and sub-meshes) and can include a skeleton for defining avatar motion and dynamics.

ModRex is important to the OpenSimulator community mainly because, like the base opensim code base itself, the RealXtend viewer is open source and breaks away from some of the key contraints imposed by the LLviewer, such as inability to create meshes, shadows, realistic avatars, and advanced lighting effects. ModRex while not part of the viewer, is the glue that connects the viewer to the opensim trunk code.

and a to illustrate some of the mesh and lighting effects in the viewer:

To use ModRex, you need the following:

[edit] Links

[edit] Setup

First launch realXtend authentication and avatar storage servers. You can download them from SourceForge project page. Documentation for these servers can be found from realXtend user documentation wiki.

After successfully launching authentication and avatar storage server, build ModreX according to instructions in realXtend wiki. To configure ModreX follow the instructions in this wiki page.

If any bugs occur, please report them to ModreX bug tracker. Note that to run realXtend 0.4 series viewer on Linux, you need to follow these instructions.

[edit] Known Issues

  • Some parts of the LLViewer interface do not yet exist in the RealXtend viewer. This is related to ModRex not allowing the viewer to set or retrieve certain data.
  • Inter-mesh collisions not yet implemented, although avatar w/ primitive collisions work
  • Shift-copied Objects may loose their texture after a sim restart

[edit] Recent Fixes

  • Multiregion Support with RexQueue
  • Multiple standalones on one machine supported
  • NHibernate-db supports mysql, sqlite and mssql2005. Meshes are persistent
  • Mesh collisions with primitives work
  • Python scripting works for the most part (some functions are not working yet)
  • Shift-copy keeps mesh as primdata
  • OpenSimulator library useable now
  • Avatar is stored, but appearance changes only after viewer restart

[edit] See Also

  • Rex_serverscript - Example Linux SysVinit startup scripts for ModRex
  • Rex_mysql - Example MySQL table definitions for ModRex
  • Simxtd - BASH script for building and install OpenSimulator with ModRex and RealXtend support
Personal tools
General
About This Wiki