From: Brian P. <bri...@tu...> - 2004-11-23 16:38:58
|
Chromium has no understanding of "fly-through" vs. "movement of point of view". The Cr view_matrix simply pre-multiplies the GL_MODELVIEW matrix. And the Cr projection_matrix replaces the application-provided GL_PROJECTION matrix. I don't know what else to say. I'd probably have to spend some hands-on time debugging this to know what's going on. But I'm afraid that I just don't have any time for that. -Brian Chartrand Katharine N. wrote: > Ensight has tracking libraries and they dynamically change the view > according to the movements of the tracked head. The object moves > correctly in response to the tracked head movements when I am not > running over chromium AND when I run with chromium using > simplemural.conf. It's only when I use the view_matrix and > projection_matrix in crmatrix that the whole scene moves. The undesired > behavior that I am seeing might be considered an implementation of a > "fly-through mode" where rotation changes the direction you are looking > (rotation about the viewer). Because we get the desired behavior with > simplemural.conf, it seems to be that crmatrix might be the source of > the undesireable behavior. Could it be possible that it is interrupting > the instruction from the application and implementing a fly-through type > behavior rather than a movement of the point ov view in relation to the > object? > > Best, > >KNC< > > Brian Paul wrote: > >> It seems to me that if you want to dynamically change the view or >> peojection according to a head-tracker that you'll have to do that >> programmatically inside the application. >> >> The .conf file only lets you set a static projection and view (but it >> can be different per-server). >> >> -Brian >> >> Chartrand Katharine N. wrote: >> >>> I am appending the relevant part of the script ( or rather a >>> simplified version of the script ) to show you what I am doing. After >>> sleeping on it, I would refine the symptoms as follows. The correct >>> tracking behavior is that the object appears stationary in the >>> scene. If I stand still and rotate my head, I see a change in >>> perspective of the object, but the object remains in the same >>> position. The same is true when I walk around the object, (which >>> means I am moving and rotating my head): the object is in the same >>> position, but the perspective of the object changes to reflect the >>> position of the viewer. So it's not really a rotation, but a change >>> of perspective that I want to see. We get this correct behavior with >>> simplemural. When we use crmatrix and it's view_matrix and >>> projection_matrix, the object moves in the scene as the viewers gaze >>> rotates. It moves in opposition to the gaze (I look left and the >>> object swings to the right) and as if the viewer were the center of >>> rotation. However, I am not sure that rotation is what is really >>> going on. >>> >>> I've tried playing with the Ztranslation and it moves the whole >>> problem backwards and forwards in the scene. >>> >>> >KNC< >>> >>> Brian Paul wrote: >>> >>>> Chartrand Katharine N. wrote: >>>> >>>>> Hello; >>>>> >>>>> I am trying to run ensight over chromium with a tracking system. I >>>>> am having trouble with the axis of rotation in the scene. >>>>> >>>>> The tracking libraries come with ensight. Everything works great >>>>> when I run ensight with tracking and a tilesort configuration like >>>>> simplemural. When I rotate my head (which is tracked) the object >>>>> revolves appropriately around a point in the center of the object. >>>>> >>>>> However, when I invoke crmatrix and it's associated frusta, the >>>>> center of rotation in the scene becomes the viewer (me and my >>>>> tracked glasses). If my move my head to the right, the object >>>>> swings wildly to the left, revolving around my head. This is not >>>>> the desired behavior. >>>>> >>>>> Why am I seeing such different behavior with and without crmatrix. >>>> >>>> >>>> >>>> >>>> >>>> I assume you mean you're setting the view_matrix and >>>> projection_matrix options in the Cr config file? >>>> >>>> Which matrices are you setting, and how? >>>> >>>> My first guess is you need to add a Z-axis translation to the view >>>> matrix. >>>> >>>> -Brian >>> >>> >>> >>> >>> #stereo setup >>> xTranslate = 0 >>> yTranslate = 0 >>> zTranslate = 0 >>> >>> nearPlane = -1000 >>> farPlane = 0 >>> EyeSep = 0.083 # Eye Seperation in feet >>> Width = 10.0 # Screen Width >>> Height = 9.333 # Screen Height >>> FocalDist = 10.0 # Distance from origin to screen >>> s = nearPlane / FocalDist # Scale from screen to near plane >>> right = 0.5 * Width * s # right value in glFrustum for projection >>> top = 0.5 * Height * s # top value in glFrustum for projection >>> eyes = EyeSep * s # Scaled Eye Seperation >>> >>> # define the projections of the rave screens >>> HOSTS = {'pc124':'right_back','pc125':'left_back'} >>> >>> StereoMode = 'CrystalEyes' >>> PANELDEFS = { 'right_back': { 'yrotation': 0, 'xrotation': 0, >>> 'l': 0, 'r': right*2.0, 'b': -top, 't': top, 'eyeSep': eyes }, \ >>> 'left_back': { 'yrotation': 0, 'xrotation': 0, 'l': >>> -right*2.0, 'r': 0, 'b': -top, 't': top, 'eyeSep': eyes } } >>> >>> # Render SPU 1 >>> renderspu = SPU( 'render' ) >>> #renderspu.Conf( 'window_geometry', [0, 0, TileWidth, TileHeight] ) >>> renderspu.Conf( 'fullscreen', 1) >>> renderspu.Conf('default_visual', 'rgb, z, double, stereo') >>> >>> >>> # Set up the first server node >>> servernode1 = CRNetworkNode('pc124') >>> servernode1.Conf('optimize_bucket', 0) >>> >>> # Setup view matrix for each screen on the rave >>> v = CRMatrix() >>> v.Translate(xTranslate + EyeSep, yTranslate, zTranslate) >>> servernode1.Conf('view_matrix', v.ToList()) >>> >>> v = CRMatrix() >>> v.Translate(xTranslate - EyeSep, yTranslate, zTranslate) >>> servernode1.Conf('right_view_matrix', v.ToList()) >>> >>> >> >> >> >> ------------------------------------------------------- >> This SF.Net email is sponsored by: InterSystems CACHE >> FREE OODBMS DOWNLOAD - A multidimensional database that combines >> robust object and relational technologies, making it a perfect match >> for Java, C++,COM, XML, ODBC and JDBC. www.intersystems.com/match8 >> _______________________________________________ >> Chromium-users mailing list >> Chr...@li... >> https://lists.sourceforge.net/lists/listinfo/chromium-users > > > > |