New Renderer (OpenGL 3.3)
-
Personally I find planet shadows to be extremely important, but I don’t rasterize them because sharp edges look bad on them. Instead, I raytrace the shadows as a final step to the shadow buffer (I buffer the shadows so I can use temporal shadow filtering), which allows me to smooth them out at the edges. No flickering, no aliasing, they look great and honestly run very quickly.
-
Yes, spheres are easy to ray trace and the shadows will look great then, that is for sure.
For now I just generate a polygonal sphere which I scale for each planet so I don’t have to generate more than one. If I subdivide it enough it should not look to bad. In my tests it does work on the player ship for all of the planets. I have yet to find a system where a planet actually casts a shadow on a station, as this seems to be very rare in FL.
Long story short: Shadows for planets now work, too
-
Here are some nice screens I took while testing (click on the images for a large version):
This will be the last for a while as I need to find the remaining bugs and also try to use a better shadow rendering technique.
Feedback is always welcome!
-
Thanks!
It was actually surprisingly easy to enable shadows for the second light source FL uses. So I replaced three of the screenshots with new ones in my post above (the ones without statistics in the upper left corner). I was expecting it to be unstable, since FL switches between the light sources rather often, but so far it seems to work very well and looks really good for my taste. -
So how far away would you say you are from release, or is this going to be kept under wraps with the excuse of ‘polish’ until Freelancer really has kicked the bucket?
I’m not a coder and I take a lot of flak for that, apparently not understanding the hard work that people put into this sort of thing and how its their decision to do what they like with it.
Buuuut as an artist, it pains me to see technology like this which could extend Freelancer’s life expectancy and make my work look ten thousand times better kept behind lock and key because nobody wants to help anyone out.
-
Well, currently the plan is to release it first exclusively for a mod update of our mod, but to open it up for all after some months. Basically I want this to be one basic feature of the update plus it is easier to find bugs if I know the environment it is tested in.
The plan is not to keep it under wraps, so that everyone can use it (else all the work would be for nothing), but I see it happening more like next year. It all depends on how well things go. Keep in mind that I still have not fixed everything (although I am getting closer now).
As an artist, are there any specific details you don’t like in the screenshots / videos (except the weird white stripe reflections from which I think I know where they come from)?
-
Thanks for the quick response. My problem isn’t so much with the rendering as it is with the textures themselves. FL’s textures were never intended to be normal mapped and while it works great on some, others look far too noisy/bumpy and should probably be redone for a project like this.
Also, if there’s any way I can help do let me know, I think its in everyone’s best interest to get this out sooner rather than later.
-
Thanks for the offer! I have been thinking and actually it would save me a lot of time if someone could create all the normal and heightmaps for the vanilla textures. For now the vanilla textures are automatically upscaled and filtered with a program I wrote. I had to create the height maps myself, which took some time and only include a few for now. The normal maps are generated from the textures. My intention was to approximate the maps with some algorithms when the rest of the OpenGL wrapper is working.
I understand if you don’t want them first used by our mod, but if they would be ready for a public release this would also help me a lot.
-
Looking so Awesome, please Release it ASAP i cant wait to play Freelancer again
-
Hehe, thanks!
But you have to be patient. I don’t have the time to work full time on this. On the positive side I was able to fix one major issue today:
Before:
After:
This was not so easy because I needed to duplicate vertices and this is tricky with the model format FL has. I also still need to fine tune the algorithm which generates the tbn data (those of you who now tangent space will know what I mean). But at least those weird white stripes are gone.Issues like that are the reason why this will still take months to be in a state where I can release it. It is of no use if you fly through FL with weird graphical artefacts and flickering. Breaks the atmosphere. I hope you can understand my reasoning
-
You should look at the UTF Editor source on the Forge, there’s stable TBN generation code in there (we preprocess the models and flag them with a custom FVF, much easier and nicer to work with).
-
Actually this is the one I patched :D. My plan was to upload the fixes I did but I never got around to do it, at least not yet
-
Here is a video to pass the time: http://www.flnu.net/downloads/fl2708.mp4
Hopefully this keeps you entertainedI was able to fix a lot of errors this week, but there are still many remaining. I also use too much video memory for some reason as you can see (~1,5 gb - which does not make sense. Must be a bug, because all textures and normal maps are compressed).
Also you should see the issues I mentioned. I need to change the shadows and get rid of the flickering. The shaders don’t yet support the glow maps (no lights in the windows) and many other things. But at least I am nearly at the graphics quality level I am aiming at
-
I’ve found the error concerning texture filtering. Here is a better video: http://www.flnu.net/downloads/fl2808.mp4
This will be the last one for some time. There won’t be much new stuff I can post for a while, since it is just fixing the remaining errors.
I hope you enjoyed the videos and understand that this will still take some time
-
Nice! the render is really gorgeous!!
I have some questions :
- Did you create your own heightmaps? I thought using heightmap and converting it to normalmap but as you implemented heightmap the conversion will not be necessary. The render will be better too because it can simulate cliffs and normalmaps can’t reproduce this effect well. ( I don’t say that DX9 conversion is bad, I just highlight normalmaps limitations)
- Will there be higher FPS support because 30 FPS is quite low or is it a limitation due to OpenGL or OpenGL test?
- Do you plane to implement Lookup Table activation in fullscreen (Greyscale balance for display calibration)? If no I will stay playing in windowed mode.
-
Thanks all for the positive feedback!
@Freestalker:
1.: I use a variation of valve’s ss bumps. They are in tangent space and have more light directions baked in (I did not write the tool which generates them). So you need a height map and normal map and get a new normal map. Additionally I use parallax mapping so you need height maps too. Keep in mind that this is the current state and might change when I have fixed the errors and start experimenting again. Also you can use just normal maps without height maps or no additional maps at all. It is all supported. And yes I created my own height maps, which took quite some time and which is why I don’t have many of them.
2.: The fps where intentionally limited to 30fps because of the video recording. This way it is way more fluid.
With my radeon 270x I get at this scene around 100fps. This is with 2 lights casting shadows, so the scene is actually rendered 3 times. I have optimized a lot of the draw calls but I did not finish all cases yet, so there is still stuff which reduces fps and will be fixed. Also I will let you choose how many lights cast shadows so you can limit it to 1 or none at all.
3.: I am assuming you mean using the calibration file of the monitor to get a good colour reproduction. I have a pretty good calibrated IPS Display (Dell u2515h) so I will think about it since I might notice a difference. But I need to do some research how this can be implemented with OpenGL. I have only read about gamma values and doing gamma correction in the shaders for now. -
Borderless windowed would be a simpler and more convenient alternative I’d say. Tabbing out of the game still causes all sorts of issues with FL on MP which borderless windowed alleviates.