I feel pretty bad. For two weeks I have been trying to get reflective floors working in Gamebryo. At first I tried just rendering from a different camera angle. It never really worked. So I next looked into portals. But after a couple of days where I actually figured them out, I emailed support to clarify some questions and they said that portals were just for culling, and were not true portals. So then I found a sample where they have reflection. But the code was split among 3 files. So I extracted the part I wanted out but it didn’t work. It took me a couple of days to get a pink texture floor. Then a week to get a texture that moved with the camera, but was distorted and totally wrong. Then I updated the code after not looking at reflection for a couple of days and I couldn’t even get the texture to update anymore.
So I threw in the towel and told the boss to give it to someone else with more graphics experience.
* EDIT * Gamebryo support was helpful through this process. This shouldn’t be taken as a knock against Gamebryo, just my own lack of graphics knowledge. * END EDIT *
While the world doesn’t need another graphics engine, these experiences motivate me to continue work on Rak3D. There’s two features I want to have that I haven’t seen before:
1. Rather than letting users program most features themselves via low-level constructs, Rak3D would include every feature I can imagine, in modular classes. So reflection would be one line of code, the shader would be a multi-part super-shader that does normal, parallax, light mapping, etc. This would be organized into a two-level system, low and high. The low level system is typical of what you see in 3D engines right now. The high level system is like RakNet’s plugins, where they expose direct features. What I like about this is stuff just works, there is no debugging needed.
2. A big problem I have is stuff just doesn’t show up and I have absolutely no idea why (as above). I want to include an interactive on-screen debugger where I can look at my scene heirachy as a tree, which will indicate with colors what is visible. And I can select any object and get full details on it, esp. why it is not visible on screen, or why it is using a default or missing texture.
4 replies on “Reflection failure :(”
I’ve been following your site on bloglines and noticed your post. I’m one of the engineers here at Emergent. We’re always trying to make our customers happy and I’m sorry that support wasn’t able to assist you. I definitely want to encourage you to send me an email and I can look into getting you some more help.
Gamebryo support was helpful through the process. I think the failure is my own lack of graphics knowledge and I don’t feel right spending more time on the issue when someone else might be able to figure it out very easily. But thanks for the offer 🙂
If your co-worker has problems, definitely get in contact with us.
For feature #2, you can dump m_spScene to a debug NIF and open that NIF in AssetViewer. Just make sure that the in game camera is added to that scene, and then you can select next camera to see what that camera would see. If you were able to see the scene, and then couldn’t see it after switching cameras, then you know that its just a camera problem.