freenode/#shirakumo - IRC Chatlog
Search
13:57:23
Colleen
github.com/selwynsimsek/tri... Website (HTML), Title: GitHub - selwynsimsek/trial-vr: VR experiences with the Trial game engine.
14:24:45
Shinmera
selwyn: you should not use special variables like that. You can access the connected passes (and more importantly their textures) much more easily with just (trial:texture (flow:port head 'left-pass-color))
14:27:58
Shinmera
selwyn: You should not create matn's for 4x4 matrices. Create a mat4 instead. You can also create the matrix by passing the array along directly, it should be compatible with the inner storage, circumventing the costly triple-conversion.
14:28:51
Shinmera
But yeah, most importantly get rid of the *left/right/compositor-render-pass*, *head*, and *hmd-pose* variables.
14:37:32
Shinmera
but from current experiments with games, it seems the best way is to have a global bound to the current scene, and use explicit arguments whenever scenes need to be handled in parallel.
14:50:16
selwyn
the priority right now is to fix the per-eye rendering which is broken and driving me mad
14:51:35
Shinmera
you can use the visualizer-pass instead to render two other passes in one window, if you need help debugging that sort of thing.
14:55:51
selwyn
the problem is that the renderings of both passes are indistinguishable, so you see double when you put on the headset
14:59:36
selwyn
it's confusing and probably not a trial issue. i thought at first something might be changing trial:*view-matrix* and trial:*projection-matrix* but i ruled that out
15:03:26
selwyn
it would be nice to package up the render passes and head camera all together, so all you have to do with the scene is (trial:enter (make-instance 'vr-actor) scene)
16:29:18
selwyn
i did it by giving the render passes a 'head' slot which they need in order to change the per-eye direction
16:41:11
Shinmera
currently (subject to change) you can get the scene with *scene* during handlers, and otherwise with the roundabout (scene (handler *context*))
16:41:38
Shinmera
As mentioned, I'll probably instead introduce a global variable that's always set to the currently active scene.
19:00:39
selwyn
i traced it to this: https://github.com/Shirakumo/trial/blob/master/display.lisp#L62 this causes problems if the framebuffers are larger than the context
19:00:40
Colleen
github.com/Shirakumo/trial/... Website (HTML), Title: trial/display.lisp at master · Shirakumo/trial · GitHub
19:01:42
Shinmera
ah, yeah, if you have fbos that are not window-sized you'll need to call viewport yourself.
19:01:56
selwyn
i substituted sensible values for (width context) and (height context) and everything worked out, but i wonder a) is there a better way to do it and b) if not is this a bug
22:35:41
selwyn
a virtual reality portacube https://usercontent.irccloud-cdn.com/file/O7RZ88f3/trial-vr.png
22:45:27
selwyn
surprisingly taking the transpose of the view matrix fixed the per-eye rendering? i must have had some inconsistent inner storage somewhere
22:49:14
Shinmera
my choice was because CL is row-major and C is row-major, but Fortran is col-major, and lots of mat libs are too as a consequence