Native 3D Vision support in Unity Games via Injector
  4 / 8    
[quote="bo3b"]Doubling the other pieces like the ViewPorts, Stencil, and RenderTargetViews is not as clear to me, but might be as simple as just doubling whatever we see passed in[/quote] Is that what, is described here? https://developer.nvidia.com/nvidia-vrworks-and-unity-user-guide It's Nvidia's VR Works plugin for Unity, also at the bottom it has a section Custom shaders and SPS (VR projects) - Read More I know that he's using a different injector, but maybe there's something useful
bo3b said:Doubling the other pieces like the ViewPorts, Stencil, and RenderTargetViews is not as clear to me, but might be as simple as just doubling whatever we see passed in


Is that what, is described here? https://developer.nvidia.com/nvidia-vrworks-and-unity-user-guide It's Nvidia's VR Works plugin for Unity, also at the bottom it has a section Custom shaders and SPS (VR projects) - Read More

I know that he's using a different injector, but maybe there's something useful

#46
Posted 05/13/2017 05:36 AM   
[quote="bo3b"]I'll have to check out your fractal drawing. A very long time ago, I made some of the first fractal and Mandelbrot apps for Macs. On a 640x480 screen, it would take only 25 minutes to calculate a Mandelbrot set, because I wrote the inner loop in assembly. I also made a wallpaper variant, that would output to a color printer ($3/page) to do wall sized paper. Something like full 3 weeks of computation. [/quote] It's amazing how far things have come along since then. We can now do most of this stuff in a shader in real time, and in stereoscopic 3d. When i have some more time i'll post some of my stuff here. I've been meaning to build a site... but time is a precious commodity, that i seem to have less and less of it every day. [quote="bo3b"] Having that in 3D sounds killer. [/quote] Oh yeah it is. it kind of makes me want to drop acid again, but I've gotten to old for that shit lol. I've also tried it in VR but the lack of resolution and maintaining 90+fps really limits what you can do. A simple menger sponge brings my system to it's knees once i add in decent lighting and shadows. [quote="bo3b"] If you want to set nvidia separation to exactly zero, one trick I've used is to map a normal game key, like left/right in this game, to a key override and set it there. It will get set at each user action, but won't cause any problems. This is nice because it makes it transparent to the user, without having to hit anything specific to start. However, if you think it makes sense to add this 3Dmigoto, I think we can possibly do that. Changing the d3dx.ini setting of force_stereo=2 would be mostly reasonable for this. [/quote] The first option would work, but the second would be more flexible. That being said, i went ahead and modified 3dmigoto with a quick fix, it overrides makes all calls to NvAPI_Stereo_SetSeparation to zero which is good enough for my purpose. I'll be releasing my upcoming fix with it. [quote="bo3b"] Setting the driver mode to Direct is easy, and doubling the backbuffer is also easy. Doubling the other pieces like the ViewPorts, Stencil, and RenderTargetViews is not as clear to me, but might be as simple as just doubling whatever we see passed in. Then any shaders still get their normal sizes, so nothing else needs to change.[/quote] Creating additional render targets, rendering to the backbuffer, and doing most of this stuff is easy to do from Unity. The initialization stuff like setting the driver mode to direct and doubling the backbuffer is not, since i have no way of calling those functions because Unity does not expose any way of doing so. ***ONE LAST ISSUE*** I'm having problems with 3dMigoto's fullscreen toggle that is needed for Unity games since they don't support exclusive fullscreen natively. When I set full_screen=1 or 2 in the .ini it launches 2 copies of the game and the first one crashes. I have to bring up the task manager and close down the first process because it's in the foreground. The second process usually starts up fine but a lot of times it's windowed and i have to hit alt enter a few times before 3d Vision kicks in, on top of that it sometimes screws up the window creation and the highest resolution that's available is 1024x768. I'm using the latest version of 3dmigoto from github, I compiled a clean copy as well as one with the separation hack i added and they both exhibit the same behavior. I also tried a clean copy of INSIDE to make sure it wasn't my fix that was causing these issues. I'll be releasing the current fix for INSIDE once this is resolved now that i've fixed all the rendering issues with some of the menus and reflections and the automatic separation. It works without a need for 3D Vision direct, so we can worry about that later, but it would be nice for future games.
bo3b said:I'll have to check out your fractal drawing. A very long time ago, I made some of the first fractal and Mandelbrot apps for Macs. On a 640x480 screen, it would take only 25 minutes to calculate a Mandelbrot set, because I wrote the inner loop in assembly. I also made a wallpaper variant, that would output to a color printer ($3/page) to do wall sized paper. Something like full 3 weeks of computation.

It's amazing how far things have come along since then. We can now do most of this stuff in a shader in real time, and in stereoscopic 3d. When i have some more time i'll post some of my stuff here. I've been meaning to build a site... but time is a precious commodity, that i seem to have less and less of it every day.

bo3b said:
Having that in 3D sounds killer.

Oh yeah it is. it kind of makes me want to drop acid again, but I've gotten to old for that shit lol.

I've also tried it in VR but the lack of resolution and maintaining 90+fps really limits what you can do. A simple menger sponge brings my system to it's knees once i add in decent lighting and shadows.

bo3b said:
If you want to set nvidia separation to exactly zero, one trick I've used is to map a normal game key, like left/right in this game, to a key override and set it there. It will get set at each user action, but won't cause any problems. This is nice because it makes it transparent to the user, without having to hit anything specific to start.


However, if you think it makes sense to add this 3Dmigoto, I think we can possibly do that. Changing the d3dx.ini setting of force_stereo=2 would be mostly reasonable for this.


The first option would work, but the second would be more flexible. That being said, i went ahead and modified 3dmigoto with a quick fix, it overrides makes all calls to NvAPI_Stereo_SetSeparation to zero which is good enough for my purpose. I'll be releasing my upcoming fix with it.

bo3b said:
Setting the driver mode to Direct is easy, and doubling the backbuffer is also easy.

Doubling the other pieces like the ViewPorts, Stencil, and RenderTargetViews is not as clear to me, but might be as simple as just doubling whatever we see passed in. Then any shaders still get their normal sizes, so nothing else needs to change.


Creating additional render targets, rendering to the backbuffer, and doing most of this stuff is easy to do from Unity. The initialization stuff like setting the driver mode to direct and doubling the backbuffer is not, since i have no way of calling those functions because Unity does not expose any way of doing so.

***ONE LAST ISSUE***
I'm having problems with 3dMigoto's fullscreen toggle that is needed for Unity games since they don't support exclusive fullscreen natively. When I set full_screen=1 or 2 in the .ini it launches 2 copies of the game and the first one crashes. I have to bring up the task manager and close down the first process because it's in the foreground. The second process usually starts up fine but a lot of times it's windowed and i have to hit alt enter a few times before 3d Vision kicks in, on top of that it sometimes screws up the window creation and the highest resolution that's available is 1024x768. I'm using the latest version of 3dmigoto from github, I compiled a clean copy as well as one with the separation hack i added and they both exhibit the same behavior. I also tried a clean copy of INSIDE to make sure it wasn't my fix that was causing these issues.

I'll be releasing the current fix for INSIDE once this is resolved now that i've fixed all the rendering issues with some of the menus and reflections and the automatic separation. It works without a need for 3D Vision direct, so we can worry about that later, but it would be nice for future games.

Like my work? You can send a donation via Paypal to sgs.rules@gmail.com

Windows 7 Pro 64x - Nvidia Driver 398.82 - EVGA 980Ti SC - Optoma HD26 with Edid override - 3D Vision 2 - i7-8700K CPU at 5.0Ghz - ASROCK Z370 Ext 4 Motherboard - 32 GB RAM Corsair Vengeance - 512 GB Samsung SSD 850 Pro - Creative Sound Blaster Z

#47
Posted 05/14/2017 09:36 PM   
[quote="sgsrules"][quote="bo3b"] If you want to set nvidia separation to exactly zero, one trick I've used is to map a normal game key, like left/right in this game, to a key override and set it there. It will get set at each user action, but won't cause any problems. This is nice because it makes it transparent to the user, without having to hit anything specific to start. However, if you think it makes sense to add this 3Dmigoto, I think we can possibly do that. Changing the d3dx.ini setting of force_stereo=2 would be mostly reasonable for this.[/quote]The first option would work, but the second would be more flexible. That being said, i went ahead and modified 3dmigoto with a quick fix, it overrides makes all calls to NvAPI_Stereo_SetSeparation to zero which is good enough for my purpose. I'll be releasing my upcoming fix with it.[/quote]Please do not do this. Releasing a version of 3Dmigoto that we don't officially build will make everyone's life a lot harder than it needs to be. If you do this, then we get into a lot of "which-version" do I run stuff like we have with HelixMod, and it's bad for everyone. There's no advantage to a hack-version, especially if we think we are building something to help other Unity games. If you like your code, send me a pull request, and we can add it and make a full version. If you think you'd like to add or change to 3Dmigoto on a regular basis, let me know and I'll give you author rights. [quote="sgsrules"][quote="bo3b"]Setting the driver mode to Direct is easy, and doubling the backbuffer is also easy. Doubling the other pieces like the ViewPorts, Stencil, and RenderTargetViews is not as clear to me, but might be as simple as just doubling whatever we see passed in. Then any shaders still get their normal sizes, so nothing else needs to change.[/quote]Creating additional render targets, rendering to the backbuffer, and doing most of this stuff is easy to do from Unity. The initialization stuff like setting the driver mode to direct and doubling the backbuffer is not, since i have no way of calling those functions because Unity does not expose any way of doing so. [/quote]Yep, this is why I was thinking that maybe we make a sort of "Unity" mode from 3Dmigoto. It already does all the heavy lifting for patching system calls. It's not the rendering that is a problem, it's the creation. Creating the RenderTargetView needs to be 2x wide. And creating any ViewPort needs to be 2x wide. We are also already hooked into all those calls, so that is not a problem, I'm just unsure if this would be sufficient. [quote="sgsrules"]***ONE LAST ISSUE*** I'm having problems with 3dMigoto's fullscreen toggle that is needed for Unity games since they don't support exclusive fullscreen natively. When I set full_screen=1 or 2 in the .ini it launches 2 copies of the game and the first one crashes. I have to bring up the task manager and close down the first process because it's in the foreground. The second process usually starts up fine but a lot of times it's windowed and i have to hit alt enter a few times before 3d Vision kicks in, on top of that it sometimes screws up the window creation and the highest resolution that's available is 1024x768. I'm using the latest version of 3dmigoto from github, I compiled a clean copy as well as one with the separation hack i added and they both exhibit the same behavior. I also tried a clean copy of INSIDE to make sure it wasn't my fix that was causing these issues. I'll be releasing the current fix for INSIDE once this is resolved now that i've fixed all the rendering issues with some of the menus and reflections and the automatic separation. It works without a need for 3D Vision direct, so we can worry about that later, but it would be nice for future games.[/quote]This doesn't make any logical sense, because we never do any process creation ourselves. No idea why it would fire up a second copy, totally bizarre. Seems like it is consistent behavior though, let me take a look and see if I can reproduce this.
sgsrules said:
bo3b said:
If you want to set nvidia separation to exactly zero, one trick I've used is to map a normal game key, like left/right in this game, to a key override and set it there. It will get set at each user action, but won't cause any problems. This is nice because it makes it transparent to the user, without having to hit anything specific to start.


However, if you think it makes sense to add this 3Dmigoto, I think we can possibly do that. Changing the d3dx.ini setting of force_stereo=2 would be mostly reasonable for this.
The first option would work, but the second would be more flexible. That being said, i went ahead and modified 3dmigoto with a quick fix, it overrides makes all calls to NvAPI_Stereo_SetSeparation to zero which is good enough for my purpose. I'll be releasing my upcoming fix with it.
Please do not do this.

Releasing a version of 3Dmigoto that we don't officially build will make everyone's life a lot harder than it needs to be. If you do this, then we get into a lot of "which-version" do I run stuff like we have with HelixMod, and it's bad for everyone. There's no advantage to a hack-version, especially if we think we are building something to help other Unity games.

If you like your code, send me a pull request, and we can add it and make a full version. If you think you'd like to add or change to 3Dmigoto on a regular basis, let me know and I'll give you author rights.


sgsrules said:
bo3b said:Setting the driver mode to Direct is easy, and doubling the backbuffer is also easy.

Doubling the other pieces like the ViewPorts, Stencil, and RenderTargetViews is not as clear to me, but might be as simple as just doubling whatever we see passed in. Then any shaders still get their normal sizes, so nothing else needs to change.
Creating additional render targets, rendering to the backbuffer, and doing most of this stuff is easy to do from Unity. The initialization stuff like setting the driver mode to direct and doubling the backbuffer is not, since i have no way of calling those functions because Unity does not expose any way of doing so.
Yep, this is why I was thinking that maybe we make a sort of "Unity" mode from 3Dmigoto. It already does all the heavy lifting for patching system calls.

It's not the rendering that is a problem, it's the creation. Creating the RenderTargetView needs to be 2x wide. And creating any ViewPort needs to be 2x wide. We are also already hooked into all those calls, so that is not a problem, I'm just unsure if this would be sufficient.


sgsrules said:***ONE LAST ISSUE***
I'm having problems with 3dMigoto's fullscreen toggle that is needed for Unity games since they don't support exclusive fullscreen natively. When I set full_screen=1 or 2 in the .ini it launches 2 copies of the game and the first one crashes. I have to bring up the task manager and close down the first process because it's in the foreground. The second process usually starts up fine but a lot of times it's windowed and i have to hit alt enter a few times before 3d Vision kicks in, on top of that it sometimes screws up the window creation and the highest resolution that's available is 1024x768. I'm using the latest version of 3dmigoto from github, I compiled a clean copy as well as one with the separation hack i added and they both exhibit the same behavior. I also tried a clean copy of INSIDE to make sure it wasn't my fix that was causing these issues.

I'll be releasing the current fix for INSIDE once this is resolved now that i've fixed all the rendering issues with some of the menus and reflections and the automatic separation. It works without a need for 3D Vision direct, so we can worry about that later, but it would be nice for future games.
This doesn't make any logical sense, because we never do any process creation ourselves. No idea why it would fire up a second copy, totally bizarre.

Seems like it is consistent behavior though, let me take a look and see if I can reproduce this.

Acer H5360 (1280x720@120Hz) - ASUS VG248QE with GSync mod - 3D Vision 1&2 - Driver 372.54
GTX 970 - i5-4670K@4.2GHz - 12GB RAM - Win7x64+evilKB2670838 - 4 Disk X25 RAID
SAGER NP9870-S - GTX 980 - i7-6700K - Win10 Pro 1607
Latest 3Dmigoto Release
Bo3b's School for ShaderHackers

#48
Posted 05/15/2017 02:02 AM   
[quote="sgsrules"]***ONE LAST ISSUE*** I'm having problems with 3dMigoto's fullscreen toggle that is needed for Unity games since they don't support exclusive fullscreen natively. When I set full_screen=1 or 2 in the .ini it launches 2 copies of the game and the first one crashes. I have to bring up the task manager and close down the first process because it's in the foreground. The second process usually starts up fine but a lot of times it's windowed and i have to hit alt enter a few times before 3d Vision kicks in, on top of that it sometimes screws up the window creation and the highest resolution that's available is 1024x768. I'm using the latest version of 3dmigoto from github, I compiled a clean copy as well as one with the separation hack i added and they both exhibit the same behavior. I also tried a clean copy of INSIDE to make sure it wasn't my fix that was causing these issues. I'll be releasing the current fix for INSIDE once this is resolved now that i've fixed all the rendering issues with some of the menus and reflections and the automatic separation. It works without a need for 3D Vision direct, so we can worry about that later, but it would be nice for future games.[/quote]I cannot reproduce this behavior. Using 1.2.57 and the GOG version of INSIDE, when I set full_screen=1, I get full screen with 3Dmigoto connected, and 3D Vision on. This is a Win10 test. Driver 381.78. Most likely candidate for this problem will thus be your mods or possibly the Unity Injector. Try your setup without the Unity Injector, to see if it is game/os/driver/3dmigoto. If that works, then maybe step through the different pieces required to narrow down the culprit.
sgsrules said:***ONE LAST ISSUE***
I'm having problems with 3dMigoto's fullscreen toggle that is needed for Unity games since they don't support exclusive fullscreen natively. When I set full_screen=1 or 2 in the .ini it launches 2 copies of the game and the first one crashes. I have to bring up the task manager and close down the first process because it's in the foreground. The second process usually starts up fine but a lot of times it's windowed and i have to hit alt enter a few times before 3d Vision kicks in, on top of that it sometimes screws up the window creation and the highest resolution that's available is 1024x768. I'm using the latest version of 3dmigoto from github, I compiled a clean copy as well as one with the separation hack i added and they both exhibit the same behavior. I also tried a clean copy of INSIDE to make sure it wasn't my fix that was causing these issues.

I'll be releasing the current fix for INSIDE once this is resolved now that i've fixed all the rendering issues with some of the menus and reflections and the automatic separation. It works without a need for 3D Vision direct, so we can worry about that later, but it would be nice for future games.
I cannot reproduce this behavior. Using 1.2.57 and the GOG version of INSIDE, when I set full_screen=1, I get full screen with 3Dmigoto connected, and 3D Vision on. This is a Win10 test. Driver 381.78.


Most likely candidate for this problem will thus be your mods or possibly the Unity Injector. Try your setup without the Unity Injector, to see if it is game/os/driver/3dmigoto. If that works, then maybe step through the different pieces required to narrow down the culprit.

Acer H5360 (1280x720@120Hz) - ASUS VG248QE with GSync mod - 3D Vision 1&2 - Driver 372.54
GTX 970 - i5-4670K@4.2GHz - 12GB RAM - Win7x64+evilKB2670838 - 4 Disk X25 RAID
SAGER NP9870-S - GTX 980 - i7-6700K - Win10 Pro 1607
Latest 3Dmigoto Release
Bo3b's School for ShaderHackers

#49
Posted 05/15/2017 02:21 AM   
[quote="bo3b"]Please do not do this. Releasing a version of 3Dmigoto that we don't officially build will make everyone's life a lot harder than it needs to be. If you do this, then we get into a lot of "which-version" do I run stuff like we have with HelixMod, and it's bad for everyone. There's no advantage to a hack-version, especially if we think we are building something to help other Unity games. If you like your code, send me a pull request, and we can add it and make a full version. If you think you'd like to add or change to 3Dmigoto on a regular basis, let me know and I'll give you author rights. [/quote] Yes, that's totally understandable, i thought about this while i was modifying the code. I wouldn't want to publish this since it's not a very good solution, I'm simply setting separation to zero and there's no way to toggle this behavior. [quote="bo3b"]Yep, this is why I was thinking that maybe we make a sort of "Unity" mode from 3Dmigoto. It already does all the heavy lifting for patching system calls. It's not the rendering that is a problem, it's the creation. Creating the RenderTargetView needs to be 2x wide. And creating any ViewPort needs to be 2x wide. We are also already hooked into all those calls, so that is not a problem, I'm just unsure if this would be sufficient. [/quote] I really don't know, I'm very familiar with Opengl but my knowledge of DirectX is pretty rudimentary. [quote="bo3b"]I cannot reproduce this behavior. Using 1.2.57 and the GOG version of INSIDE, when I set full_screen=1, I get full screen with 3Dmigoto connected, and 3D Vision on. This is a Win10 test. Driver 381.78. Most likely candidate for this problem will thus be your mods or possibly the Unity Injector. Try your setup without the Unity Injector, to see if it is game/os/driver/3dmigoto. If that works, then maybe step through the different pieces required to narrow down the culprit.[/quote] I did a clean install of INSIDE, with no mods or anything else. installed 3Dmigoto 1.2.57. I found the culprit. Oddly enough if i set hunting=0 or 2 and full_screen=1 in the .ini it will consistently create two instances, the first one crashes right before the second one is launched. if i set hunting=1 or disable fullscreen it works. All other settings are the defaults. Steam version. Win 7 64. 378.98 drivers. 3Dmigoto 1.2.57
bo3b said:Please do not do this.

Releasing a version of 3Dmigoto that we don't officially build will make everyone's life a lot harder than it needs to be. If you do this, then we get into a lot of "which-version" do I run stuff like we have with HelixMod, and it's bad for everyone. There's no advantage to a hack-version, especially if we think we are building something to help other Unity games.

If you like your code, send me a pull request, and we can add it and make a full version. If you think you'd like to add or change to 3Dmigoto on a regular basis, let me know and I'll give you author rights.

Yes, that's totally understandable, i thought about this while i was modifying the code. I wouldn't want to publish this since it's not a very good solution, I'm simply setting separation to zero and there's no way to toggle this behavior.

bo3b said:Yep, this is why I was thinking that maybe we make a sort of "Unity" mode from 3Dmigoto. It already does all the heavy lifting for patching system calls.

It's not the rendering that is a problem, it's the creation. Creating the RenderTargetView needs to be 2x wide. And creating any ViewPort needs to be 2x wide. We are also already hooked into all those calls, so that is not a problem, I'm just unsure if this would be sufficient.

I really don't know, I'm very familiar with Opengl but my knowledge of DirectX is pretty rudimentary.
bo3b said:I cannot reproduce this behavior. Using 1.2.57 and the GOG version of INSIDE, when I set full_screen=1, I get full screen with 3Dmigoto connected, and 3D Vision on. This is a Win10 test. Driver 381.78.


Most likely candidate for this problem will thus be your mods or possibly the Unity Injector. Try your setup without the Unity Injector, to see if it is game/os/driver/3dmigoto. If that works, then maybe step through the different pieces required to narrow down the culprit.

I did a clean install of INSIDE, with no mods or anything else. installed 3Dmigoto 1.2.57.

I found the culprit. Oddly enough if i set hunting=0 or 2 and full_screen=1 in the .ini it will consistently create two instances, the first one crashes right before the second one is launched. if i set hunting=1 or disable fullscreen it works. All other settings are the defaults.

Steam version. Win 7 64. 378.98 drivers. 3Dmigoto 1.2.57

Like my work? You can send a donation via Paypal to sgs.rules@gmail.com

Windows 7 Pro 64x - Nvidia Driver 398.82 - EVGA 980Ti SC - Optoma HD26 with Edid override - 3D Vision 2 - i7-8700K CPU at 5.0Ghz - ASROCK Z370 Ext 4 Motherboard - 32 GB RAM Corsair Vengeance - 512 GB Samsung SSD 850 Pro - Creative Sound Blaster Z

#50
Posted 05/15/2017 03:10 AM   
[quote="sgsrules"][quote="bo3b"]Please do not do this. Releasing a version of 3Dmigoto that we don't officially build will make everyone's life a lot harder than it needs to be. If you do this, then we get into a lot of "which-version" do I run stuff like we have with HelixMod, and it's bad for everyone. There's no advantage to a hack-version, especially if we think we are building something to help other Unity games. If you like your code, send me a pull request, and we can add it and make a full version. If you think you'd like to add or change to 3Dmigoto on a regular basis, let me know and I'll give you author rights. [/quote]Yes, that's totally understandable, i thought about this while i was modifying the code. I wouldn't want to publish this since it's not a very good solution, I'm simply setting separation to zero and there's no way to toggle this behavior.[/quote]I'm creating a new version of 3Dmigoto right now, where it will attempt a Direct Mode when force_stereo=2. This will do the pieces I detailed above, leaving it up to the caller to call NvAPI_Stereo_SetActiveEye and fill in each eye. It makes sense to add this to 3Dmigoto, rather than make a different standalone tool, because of the key support, and the SBS/TAB support. I'll test and debug this on a simplified Tutorial7. Can't promise anything will work, but it's not much work to add these pieces. [quote="sgsrules"][quote="bo3b"]Yep, this is why I was thinking that maybe we make a sort of "Unity" mode from 3Dmigoto. It already does all the heavy lifting for patching system calls. It's not the rendering that is a problem, it's the creation. Creating the RenderTargetView needs to be 2x wide. And creating any ViewPort needs to be 2x wide. We are also already hooked into all those calls, so that is not a problem, I'm just unsure if this would be sufficient.[/quote]I really don't know, I'm very familiar with Opengl but my knowledge of DirectX is pretty rudimentary.[/quote]We can try it out with this new 3Dmigoto variant. No idea if there will be other missing pieces, but I can at a minimum ensure that the backbuffer is setup and the driver is in Direct Mode. In principle, that will also allow you to use the standard nvidia separation and convergence, and set them directly as desired. [quote="sgsrules"][quote="bo3b"]I cannot reproduce this behavior. Using 1.2.57 and the GOG version of INSIDE, when I set full_screen=1, I get full screen with 3Dmigoto connected, and 3D Vision on. This is a Win10 test. Driver 381.78. Most likely candidate for this problem will thus be your mods or possibly the Unity Injector. Try your setup without the Unity Injector, to see if it is game/os/driver/3dmigoto. If that works, then maybe step through the different pieces required to narrow down the culprit.[/quote] I did a clean install of INSIDE, with no mods or anything else. installed 3Dmigoto 1.2.57. I found the culprit. Oddly enough if i set hunting=0 or 2 and full_screen=1 in the .ini it will consistently create two instances, the first one crashes right before the second one is launched. if i set hunting=1 or disable fullscreen it works. All other settings are the defaults. Steam version. Win 7 64. 378.98 drivers. 3Dmigoto 1.2.57[/quote]Very strange. I cannot reproduce this behavior either. When I set hunting=0 or 2, it still works normally, at least in terms of launching a single app. I do get crashes when I alt-tab out, and if I set the full_screen=2, I do not get crashes, but I cannot return to full screen, it stays stuck windowed. Edit: Also tried this under Win7 machine, Driver 378.92, and cannot reproduce the multi-launch.
sgsrules said:
bo3b said:Please do not do this.

Releasing a version of 3Dmigoto that we don't officially build will make everyone's life a lot harder than it needs to be. If you do this, then we get into a lot of "which-version" do I run stuff like we have with HelixMod, and it's bad for everyone. There's no advantage to a hack-version, especially if we think we are building something to help other Unity games.

If you like your code, send me a pull request, and we can add it and make a full version. If you think you'd like to add or change to 3Dmigoto on a regular basis, let me know and I'll give you author rights.
Yes, that's totally understandable, i thought about this while i was modifying the code. I wouldn't want to publish this since it's not a very good solution, I'm simply setting separation to zero and there's no way to toggle this behavior.
I'm creating a new version of 3Dmigoto right now, where it will attempt a Direct Mode when force_stereo=2. This will do the pieces I detailed above, leaving it up to the caller to call NvAPI_Stereo_SetActiveEye and fill in each eye.

It makes sense to add this to 3Dmigoto, rather than make a different standalone tool, because of the key support, and the SBS/TAB support.

I'll test and debug this on a simplified Tutorial7. Can't promise anything will work, but it's not much work to add these pieces.


sgsrules said:
bo3b said:Yep, this is why I was thinking that maybe we make a sort of "Unity" mode from 3Dmigoto. It already does all the heavy lifting for patching system calls.

It's not the rendering that is a problem, it's the creation. Creating the RenderTargetView needs to be 2x wide. And creating any ViewPort needs to be 2x wide. We are also already hooked into all those calls, so that is not a problem, I'm just unsure if this would be sufficient.
I really don't know, I'm very familiar with Opengl but my knowledge of DirectX is pretty rudimentary.
We can try it out with this new 3Dmigoto variant.

No idea if there will be other missing pieces, but I can at a minimum ensure that the backbuffer is setup and the driver is in Direct Mode. In principle, that will also allow you to use the standard nvidia separation and convergence, and set them directly as desired.


sgsrules said:
bo3b said:I cannot reproduce this behavior. Using 1.2.57 and the GOG version of INSIDE, when I set full_screen=1, I get full screen with 3Dmigoto connected, and 3D Vision on. This is a Win10 test. Driver 381.78.

Most likely candidate for this problem will thus be your mods or possibly the Unity Injector. Try your setup without the Unity Injector, to see if it is game/os/driver/3dmigoto. If that works, then maybe step through the different pieces required to narrow down the culprit.

I did a clean install of INSIDE, with no mods or anything else. installed 3Dmigoto 1.2.57.

I found the culprit. Oddly enough if i set hunting=0 or 2 and full_screen=1 in the .ini it will consistently create two instances, the first one crashes right before the second one is launched. if i set hunting=1 or disable fullscreen it works. All other settings are the defaults.

Steam version. Win 7 64. 378.98 drivers. 3Dmigoto 1.2.57
Very strange. I cannot reproduce this behavior either.

When I set hunting=0 or 2, it still works normally, at least in terms of launching a single app. I do get crashes when I alt-tab out, and if I set the full_screen=2, I do not get crashes, but I cannot return to full screen, it stays stuck windowed.


Edit: Also tried this under Win7 machine, Driver 378.92, and cannot reproduce the multi-launch.

Acer H5360 (1280x720@120Hz) - ASUS VG248QE with GSync mod - 3D Vision 1&2 - Driver 372.54
GTX 970 - i5-4670K@4.2GHz - 12GB RAM - Win7x64+evilKB2670838 - 4 Disk X25 RAID
SAGER NP9870-S - GTX 980 - i7-6700K - Win10 Pro 1607
Latest 3Dmigoto Release
Bo3b's School for ShaderHackers

#51
Posted 05/15/2017 04:37 AM   
Maybe it's a steam version issue? I tried it on my secondary copy of windows that i have on my pc and had the same issue. Running on driver version 381.65, so newer drivers didn't help. Does anyone else have the steam version to test it with? Helifax I noticed it's in your library.
Maybe it's a steam version issue? I tried it on my secondary copy of windows that i have on my pc and had the same issue. Running on driver version 381.65, so newer drivers didn't help.

Does anyone else have the steam version to test it with? Helifax I noticed it's in your library.

Like my work? You can send a donation via Paypal to sgs.rules@gmail.com

Windows 7 Pro 64x - Nvidia Driver 398.82 - EVGA 980Ti SC - Optoma HD26 with Edid override - 3D Vision 2 - i7-8700K CPU at 5.0Ghz - ASROCK Z370 Ext 4 Motherboard - 32 GB RAM Corsair Vengeance - 512 GB Samsung SSD 850 Pro - Creative Sound Blaster Z

#52
Posted 05/15/2017 01:55 PM   
I tried another Unity game to make sure it wasn't something specific with my config and Unity. I patched The Long Dark using my injector and after a few modifications, setting the profile to use the 3d hub player profile, and using 3dMigoto 1.2.36 it worked perfectly. I couldn't even get 3d to kick in with 3dMigoto 1.2.57. This is definitely reassuring since it didn't take me to long to fix, I just had to rebuild a few of the assets since INSIDE and The Long Dark use different versions of Unity. Long Dark is running on 5.4 I then tried using the 1.2.36 version of 3dmigoto with INSIDE. I also changed the profile to use the 3D hub player. The game doesn't crash but it refuses to go into fullscreen mode and 3d won't kick in. At this point I'm guessing that it might be an issue that's specific to the version of Unity and the version of 3d Migoto that's being used. The steam version of INSIDE is running on version 5.0.4.13071451. What version is the GOG version running on? The infuriating thing is that at some point INSIDE was working fine when i first started working on this fix. Either the game updated or i may have possible updated 3dMigoto.. or something else might have occurred.
I tried another Unity game to make sure it wasn't something specific with my config and Unity. I patched The Long Dark using my injector and after a few modifications, setting the profile to use the 3d hub player profile, and using 3dMigoto 1.2.36 it worked perfectly. I couldn't even get 3d to kick in with 3dMigoto 1.2.57. This is definitely reassuring since it didn't take me to long to fix, I just had to rebuild a few of the assets since INSIDE and The Long Dark use different versions of Unity. Long Dark is running on 5.4

I then tried using the 1.2.36 version of 3dmigoto with INSIDE. I also changed the profile to use the 3D hub player. The game doesn't crash but it refuses to go into fullscreen mode and 3d won't kick in.

At this point I'm guessing that it might be an issue that's specific to the version of Unity and the version of 3d Migoto that's being used. The steam version of INSIDE is running on version 5.0.4.13071451. What version is the GOG version running on?

The infuriating thing is that at some point INSIDE was working fine when i first started working on this fix. Either the game updated or i may have possible updated 3dMigoto.. or something else might have occurred.

Like my work? You can send a donation via Paypal to sgs.rules@gmail.com

Windows 7 Pro 64x - Nvidia Driver 398.82 - EVGA 980Ti SC - Optoma HD26 with Edid override - 3D Vision 2 - i7-8700K CPU at 5.0Ghz - ASROCK Z370 Ext 4 Motherboard - 32 GB RAM Corsair Vengeance - 512 GB Samsung SSD 850 Pro - Creative Sound Blaster Z

#53
Posted 05/16/2017 05:03 AM   
Same version number of INSIDE, for the GOG version. 5.0.4.13071451 Only probable difference then would be the SteamAPI connection, which GOG version won't have. File version of inside.exe: 5.0.5.29787 Very interesting that it worked with Long Dark as well, but required a different 3Dmigoto. From 1.2.36 to 1.2.57 there aren't any changes that we'd expect to be significant. Almost everything was adding options, not changing primary flow. There was one addition of the allow_dxgi1_2=2 option to be more compatible with Steam Overlay. This could be related to the Steam Overlay, be sure to disable that, and also experiment with deleting the Steam overlay dlls. We've had trouble with bad steam code before. Make sure no other overlays are running also, stuff like frame monitors and graphics monitors tend to interact badly. Of note, I think it will be possible to add 3D Vision Direct to 3Dmigoto. I've made a prototype build that I'm working on, and am running it against my stripped down sample program for 3D Vision Direct. So, I drop in the 3Dmigoto dlls, and allow it to do the init sequence, but still manage the alternate-eye drawing in the app itself. This works for the first frame, I'm getting a stereo image and no errors or crashes. But for all further frames, I'm getting mono. So, close. Seems doable.
Same version number of INSIDE, for the GOG version. 5.0.4.13071451 Only probable difference then would be the SteamAPI connection, which GOG version won't have. File version of inside.exe: 5.0.5.29787


Very interesting that it worked with Long Dark as well, but required a different 3Dmigoto. From 1.2.36 to 1.2.57 there aren't any changes that we'd expect to be significant. Almost everything was adding options, not changing primary flow. There was one addition of the allow_dxgi1_2=2 option to be more compatible with Steam Overlay.

This could be related to the Steam Overlay, be sure to disable that, and also experiment with deleting the Steam overlay dlls. We've had trouble with bad steam code before. Make sure no other overlays are running also, stuff like frame monitors and graphics monitors tend to interact badly.


Of note, I think it will be possible to add 3D Vision Direct to 3Dmigoto.

I've made a prototype build that I'm working on, and am running it against my stripped down sample program for 3D Vision Direct. So, I drop in the 3Dmigoto dlls, and allow it to do the init sequence, but still manage the alternate-eye drawing in the app itself.

This works for the first frame, I'm getting a stereo image and no errors or crashes. But for all further frames, I'm getting mono. So, close. Seems doable.

Acer H5360 (1280x720@120Hz) - ASUS VG248QE with GSync mod - 3D Vision 1&2 - Driver 372.54
GTX 970 - i5-4670K@4.2GHz - 12GB RAM - Win7x64+evilKB2670838 - 4 Disk X25 RAID
SAGER NP9870-S - GTX 980 - i7-6700K - Win10 Pro 1607
Latest 3Dmigoto Release
Bo3b's School for ShaderHackers

#54
Posted 05/16/2017 07:41 AM   
@sgsrules [quote]I found the culprit. Oddly enough if i set hunting=0 or 2 and full_screen=1 in the .ini it will consistently create two instances, the first one crashes right before the second one is launched. if i set hunting=1 or disable fullscreen it works. All other settings are the defaults. Steam version. Win 7 64. 378.98 drivers. 3Dmigoto 1.2.57[/quote] Yesterday i test using 3Dmigoto 1.2.57 with hunting=0 and full_screem=1. And i can't replicate the issue (2 instances), BUT i have a game crash when i exit the game...always. The issue is "full_screem=1", if i set to =0 i don't have the crash...i can exit normally. Steam version. Win 7 64. 381.89 drivers. 3Dmigoto 1.2.57.
@sgsrules

I found the culprit. Oddly enough if i set hunting=0 or 2 and full_screen=1 in the .ini it will consistently create two instances, the first one crashes right before the second one is launched. if i set hunting=1 or disable fullscreen it works. All other settings are the defaults.

Steam version. Win 7 64. 378.98 drivers. 3Dmigoto 1.2.57

Yesterday i test using 3Dmigoto 1.2.57 with hunting=0 and full_screem=1. And i can't replicate the issue (2 instances), BUT i have a game crash when i exit the game...always. The issue is "full_screem=1", if i set to =0 i don't have the crash...i can exit normally. Steam version. Win 7 64. 381.89 drivers. 3Dmigoto 1.2.57.

MY WEB

Helix Mod - Making 3D Better

My 3D Screenshot Gallery

Like my fixes? you can donate to Paypal: dhr.donation@gmail.com

#55
Posted 05/16/2017 02:51 PM   
[quote="bo3b"]Same version number of INSIDE, for the GOG version. 5.0.4.13071451 Only probable difference then would be the SteamAPI connection, which GOG version won't have. File version of inside.exe: 5.0.5.29787 Very interesting that it worked with Long Dark as well, but required a different 3Dmigoto. From 1.2.36 to 1.2.57 there aren't any changes that we'd expect to be significant. Almost everything was adding options, not changing primary flow. There was one addition of the allow_dxgi1_2=2 option to be more compatible with Steam Overlay. This could be related to the Steam Overlay, be sure to disable that, and also experiment with deleting the Steam overlay dlls. We've had trouble with bad steam code before. Make sure no other overlays are running also, stuff like frame monitors and graphics monitors tend to interact badly. [/quote] [quote="DHR"]Yesterday i test using 3Dmigoto 1.2.57 with hunting=0 and full_screem=1. And i can't replicate the issue (2 instances), BUT i have a game crash when i exit the game...always. The issue is "full_screem=1", if i set to =0 i don't have the crash...i can exit normally. Steam version. Win 7 64. 381.89 drivers. 3Dmigoto 1.2.57. [/quote] I have steam overlay disabled and i don't use any other overlays, I even disabled my anti virus. It's using the same version as the gog version. DHR confirmed that it's not Steam related (Thanks for checking!). So it's something specific to my configuration. I'll try doing a clean driver install tonight and also delete all traces of INSIDE from my pc. really strange. I'l also double check the long dark in case i missed something. There were a lot of other issues that were specific to the game that i needed to fix, it was getting late and i was tired, so it could've been a ID-10T error. [quote="bo3b"]Of note, I think it will be possible to add 3D Vision Direct to 3Dmigoto. I've made a prototype build that I'm working on, and am running it against my stripped down sample program for 3D Vision Direct. So, I drop in the 3Dmigoto dlls, and allow it to do the init sequence, but still manage the alternate-eye drawing in the app itself. This works for the first frame, I'm getting a stereo image and no errors or crashes. But for all further frames, I'm getting mono. So, close. Seems doable. [/quote] That's great news. Once you get this working It should be pretty easy for me to create a native plugin dll for Unity. I'm guessing that along with the various NvAPI_Stereo_Get functions, i'll only need to call NvAPI_Stereo_SetActiveEye from Unity. The init and activate stereo functions will be handled by the 3Dmigoto dlls, is that correct?
bo3b said:Same version number of INSIDE, for the GOG version. 5.0.4.13071451 Only probable difference then would be the SteamAPI connection, which GOG version won't have. File version of inside.exe: 5.0.5.29787

Very interesting that it worked with Long Dark as well, but required a different 3Dmigoto. From 1.2.36 to 1.2.57 there aren't any changes that we'd expect to be significant. Almost everything was adding options, not changing primary flow. There was one addition of the allow_dxgi1_2=2 option to be more compatible with Steam Overlay.

This could be related to the Steam Overlay, be sure to disable that, and also experiment with deleting the Steam overlay dlls. We've had trouble with bad steam code before. Make sure no other overlays are running also, stuff like frame monitors and graphics monitors tend to interact badly.

DHR said:Yesterday i test using 3Dmigoto 1.2.57 with hunting=0 and full_screem=1. And i can't replicate the issue (2 instances), BUT i have a game crash when i exit the game...always. The issue is "full_screem=1", if i set to =0 i don't have the crash...i can exit normally. Steam version. Win 7 64. 381.89 drivers. 3Dmigoto 1.2.57.

I have steam overlay disabled and i don't use any other overlays, I even disabled my anti virus. It's using the same version as the gog version. DHR confirmed that it's not Steam related (Thanks for checking!). So it's something specific to my configuration. I'll try doing a clean driver install tonight and also delete all traces of INSIDE from my pc. really strange.

I'l also double check the long dark in case i missed something. There were a lot of other issues that were specific to the game that i needed to fix, it was getting late and i was tired, so it could've been a ID-10T error.

bo3b said:Of note, I think it will be possible to add 3D Vision Direct to 3Dmigoto.

I've made a prototype build that I'm working on, and am running it against my stripped down sample program for 3D Vision Direct. So, I drop in the 3Dmigoto dlls, and allow it to do the init sequence, but still manage the alternate-eye drawing in the app itself.

This works for the first frame, I'm getting a stereo image and no errors or crashes. But for all further frames, I'm getting mono. So, close. Seems doable.


That's great news. Once you get this working It should be pretty easy for me to create a native plugin dll for Unity. I'm guessing that along with the various NvAPI_Stereo_Get functions, i'll only need to call NvAPI_Stereo_SetActiveEye from Unity. The init and activate stereo functions will be handled by the 3Dmigoto dlls, is that correct?

Like my work? You can send a donation via Paypal to sgs.rules@gmail.com

Windows 7 Pro 64x - Nvidia Driver 398.82 - EVGA 980Ti SC - Optoma HD26 with Edid override - 3D Vision 2 - i7-8700K CPU at 5.0Ghz - ASROCK Z370 Ext 4 Motherboard - 32 GB RAM Corsair Vengeance - 512 GB Samsung SSD 850 Pro - Creative Sound Blaster Z

#56
Posted 05/16/2017 04:53 PM   
[quote="sgsrules"][quote="bo3b"]Of note, I think it will be possible to add 3D Vision Direct to 3Dmigoto. I've made a prototype build that I'm working on, and am running it against my stripped down sample program for 3D Vision Direct. So, I drop in the 3Dmigoto dlls, and allow it to do the init sequence, but still manage the alternate-eye drawing in the app itself. This works for the first frame, I'm getting a stereo image and no errors or crashes. But for all further frames, I'm getting mono. So, close. Seems doable.[/quote]That's great news. Once you get this working It should be pretty easy for me to create a native plugin dll for Unity. I'm guessing that along with the various NvAPI_Stereo_Get functions, i'll only need to call NvAPI_Stereo_SetActiveEye from Unity. The init and activate stereo functions will be handled by the 3Dmigoto dlls, is that correct?[/quote]I cracked the last problem, and have a working prototype. I'll make a new build later today. That's correct, 3Dmigoto will do all the init work. Your plugin would use the Stereo_Get functions for separation and convergence, to apply to the View or Projection matrix like in my sample. And call SetActiveEye when you switch drawing. I'll make a different branch in the 3D-Vision-Direct project for this example code. No guarantee this will work, there might be conflicts with ViewPorts or Stencil Buffers or other DX11 jazz that Unity uses, but we'll see. It might be necessary to double full-screen ViewPorts for example, but not smaller ones.
sgsrules said:
bo3b said:Of note, I think it will be possible to add 3D Vision Direct to 3Dmigoto.

I've made a prototype build that I'm working on, and am running it against my stripped down sample program for 3D Vision Direct. So, I drop in the 3Dmigoto dlls, and allow it to do the init sequence, but still manage the alternate-eye drawing in the app itself.

This works for the first frame, I'm getting a stereo image and no errors or crashes. But for all further frames, I'm getting mono. So, close. Seems doable.
That's great news. Once you get this working It should be pretty easy for me to create a native plugin dll for Unity. I'm guessing that along with the various NvAPI_Stereo_Get functions, i'll only need to call NvAPI_Stereo_SetActiveEye from Unity. The init and activate stereo functions will be handled by the 3Dmigoto dlls, is that correct?
I cracked the last problem, and have a working prototype. I'll make a new build later today.

That's correct, 3Dmigoto will do all the init work. Your plugin would use the Stereo_Get functions for separation and convergence, to apply to the View or Projection matrix like in my sample. And call SetActiveEye when you switch drawing. I'll make a different branch in the 3D-Vision-Direct project for this example code.

No guarantee this will work, there might be conflicts with ViewPorts or Stencil Buffers or other DX11 jazz that Unity uses, but we'll see. It might be necessary to double full-screen ViewPorts for example, but not smaller ones.

Acer H5360 (1280x720@120Hz) - ASUS VG248QE with GSync mod - 3D Vision 1&2 - Driver 372.54
GTX 970 - i5-4670K@4.2GHz - 12GB RAM - Win7x64+evilKB2670838 - 4 Disk X25 RAID
SAGER NP9870-S - GTX 980 - i7-6700K - Win10 Pro 1607
Latest 3Dmigoto Release
Bo3b's School for ShaderHackers

#57
Posted 05/16/2017 09:56 PM   
@sgsrules: OK, I've made the changes to 3Dmigoto and created a test app to show how to use 3D Vision Direct Mode with it. Since you have the ability to create 3Dmigoto builds, pull down the top-of-tree for master, and build that. It includes all the changes necessary to make the sample app work. Rather than generate a new build, we can use top-of-tree for the time being. Set the d3dx.ini flag of force_stereo=2. It will log any errors. The sample app is at: [url]https://github.com/bo3b/3D-Vision-Direct/tree/3Dmigoto[/url] It's only slightly different than before, but should fairly closely match your runtime environment. There might be other dx11 gibleys we need to force to 2x, totally not sure about what Unity might require. But in any case, give this a whirl and let me know what happens.
@sgsrules:

OK, I've made the changes to 3Dmigoto and created a test app to show how to use 3D Vision Direct Mode with it.

Since you have the ability to create 3Dmigoto builds, pull down the top-of-tree for master, and build that. It includes all the changes necessary to make the sample app work. Rather than generate a new build, we can use top-of-tree for the time being.

Set the d3dx.ini flag of force_stereo=2. It will log any errors.


The sample app is at: https://github.com/bo3b/3D-Vision-Direct/tree/3Dmigoto

It's only slightly different than before, but should fairly closely match your runtime environment.


There might be other dx11 gibleys we need to force to 2x, totally not sure about what Unity might require.

But in any case, give this a whirl and let me know what happens.

Acer H5360 (1280x720@120Hz) - ASUS VG248QE with GSync mod - 3D Vision 1&2 - Driver 372.54
GTX 970 - i5-4670K@4.2GHz - 12GB RAM - Win7x64+evilKB2670838 - 4 Disk X25 RAID
SAGER NP9870-S - GTX 980 - i7-6700K - Win10 Pro 1607
Latest 3Dmigoto Release
Bo3b's School for ShaderHackers

#58
Posted 05/17/2017 10:20 AM   
What about Enableconsumerstereosupport StereoVRconvergencebias From [url=https://forums.geforce.com/default/topic/930853/3d-vision/monitorsizeoverride-the-only-depthhack-you-ll-ever-need-/post/4864006/#4864006]this post[/url] Are those perhaps additions that were made by Nvidia when they were playing around about enabling VR and 3D Vision edit: maybe those are Legacy settings from XP drivers?
What about
Enableconsumerstereosupport
StereoVRconvergencebias

From this post

Are those perhaps additions that were made by Nvidia when they were playing around about enabling VR and 3D Vision

edit: maybe those are Legacy settings from XP drivers?

#59
Posted 05/17/2017 11:49 AM   
[quote="D-Man11"]What about Enableconsumerstereosupport StereoVRconvergencebias From [url=https://forums.geforce.com/default/topic/930853/3d-vision/monitorsizeoverride-the-only-depthhack-you-ll-ever-need-/post/4864006/#4864006]this post[/url] Are those perhaps additions that were made by Nvidia when they were playing around about enabling VR and 3D Vision edit: maybe those are Legacy settings from XP drivers?[/quote]Those are suggestive alright, but we don't know anything about them, or how to use them. They are also mixed in with other cruft in the registry, that was used for the last-gen 3D. As near as I can tell, the registry stuff mostly does nothing nowadays, because they put everything into the profiles instead. Speaking of profiles- to use this 3D Vision Direct Mode, it's necessary to set the: [code]StereoProfile = 1[/code] So that the driver knows we are using 3D. It can be done in the d3dx.ini Profile section, or by profile editing.
D-Man11 said:What about
Enableconsumerstereosupport
StereoVRconvergencebias

From this post

Are those perhaps additions that were made by Nvidia when they were playing around about enabling VR and 3D Vision

edit: maybe those are Legacy settings from XP drivers?
Those are suggestive alright, but we don't know anything about them, or how to use them. They are also mixed in with other cruft in the registry, that was used for the last-gen 3D. As near as I can tell, the registry stuff mostly does nothing nowadays, because they put everything into the profiles instead.


Speaking of profiles- to use this 3D Vision Direct Mode, it's necessary to set the:

StereoProfile = 1


So that the driver knows we are using 3D. It can be done in the d3dx.ini Profile section, or by profile editing.

Acer H5360 (1280x720@120Hz) - ASUS VG248QE with GSync mod - 3D Vision 1&2 - Driver 372.54
GTX 970 - i5-4670K@4.2GHz - 12GB RAM - Win7x64+evilKB2670838 - 4 Disk X25 RAID
SAGER NP9870-S - GTX 980 - i7-6700K - Win10 Pro 1607
Latest 3Dmigoto Release
Bo3b's School for ShaderHackers

#60
Posted 05/17/2017 10:24 PM   
  4 / 8    
Scroll To Top