New Renderer (OpenGL 3.3)
-
Here is a video of the current state: http://www.flnu.net/downloads/fl2603_q20.mp4
With the new knowledge from reverse engineering the rendering pipeline of FL I was able to render the starsphere into a cubemap und use that for environment mapping. I also experimented with different lighting models and added bicubic texture filtering.
At the end of the video you can see the scene with disabled environment mapping.
I still need to fix the calculation of the normal, tangent and binormal vectors which are stored in the models. This is the reason you see bad lighting at some locations.
If you have any suggestions, constructive criticism or already like the look let me know!
I still need to add a material system, change the shadow rendering technique, fix the remaining bugs and a lot more stuff.
Edit: Exchanged the video with a better encoded one.
-
That looks stunning mate! Really nice graphics, would make good in a mod
-
Thanks! I still am not quite satisfied with the look. We will see what I’ll come up with
Btw. here is the video encoded with h265: http://www.flnu.net/downloads/fl2603_x265q20.mkv I made it for testing purposes and it is less blurry.
-
Thanks!
So here is a video of the current state: http://www.flnu.net/downloads/fl0906.mp4This is a graphical level of which I think it is ready for release (minus the shadows! I definitely need to change the technique!). Lighting is about two third PBR plus a few tricks I used to make it work with the old FL lighting and materials including textures.
I recalculated all the normals and don’t weight in the original ones yet so the geometry is less round at some places. But all the wrong lighting is gone now.
What’s left is fixing more bugs, a material system, some optimizations and different shadows. If there is time I’ll try to render better planet atmospheres, but maybe that comes for later versions.
Also I have been working with .Nx from this thread to create better models and textures, but this will take some time.
At this point feedback would be helpful, negative and positive. Things you like and you don’t etc.
-
Id be interested in how it renders the more “exotic” textures.
e.g. Nomads, effects, semi-transparent stuff, nebulas, etc. -
Besides for models this is untouched for now. It basically uses the old fixed function pipeline from d3d8 wrapped to OpenGL. I plan to use shader for effects etc. in later versions to to neat stuff.
Here is a nomad BS spawned at the station:
Edit:
And here a station in a nebula:
P.S.: The lightning flashes do cast shadows!
Here is the same scene in Vanilla FL:
-
cool
Id be willing to jump in with texture work.
Eventhough I have only little time due to a large mod update I still believe I can afford a bit time on that. -
Sounds good! .Nx has contacted you regarding the texturing work.
No one really has commented on the video. I would like to know whether you noticed a change compared to the video before. Is it better, worse or the same? What did you notice? I realize it is a matter of taste and I had to make a choice regarding the look. If the video is too blurry I can encode it with a better quality.
Edit: .Nx noticed me that some browsers (like chrome) have buggy video players and in that case mine look way better if you download them and watch them with a normal video player.
-
The result of your modification is really good!
I have a question. Will we be able to use a modifier for each texture, because of the fact if I do a wrong height map optimisation via photoshop or any other software, it would be nice to change the values through a modifier.
-
Hi Schmackbolzen, Ive been following this thread for a year now and decided to register yesterday, so I can ask some questions.
1.) Will this renderer work for other Freelancer mods? I am coming from DiscoveryGC.
2.) How far along is the renderer from finishing? It looks absolutely amazing so far, I love the shadows and the bumpmaps.
3.) On the technical side, what modifications are you making to the vanilla models? Besides editing the MAT files and adding bumpmaps, what else needs doing for the renderer to have impact? Any specular maps and stuff like this?
I really hope you get to finish it and I hope even more that it will be available to work with other mods. It will really help to keep old Freelancer running for a bit longer!
-
Glad you guys like it!
@Freestalker.fr:
My goal is to have a file where you can change each value per texture so that there is a material system. The only bad thing about this is, that you have to change everything manually. I would rather have some automated process when the model gets exported from Max or smth. But for now I focus on a version which can get expanded later after release.@eigos:
I plan to create a mod on ModDB so everyone can incorporate it into their mod. The goal is to keep FL alive after all. Though I am thinking about first testing it on the mod I am maintaining because it is easier to get feedback and deliver updates.I can’t say when it is going to be finished. Currently I am working on polishing stuff and you never know when all the problematic bugs are gone. At least I can say it is working on AMD, Nvidia and Intel graphic cards. Hopefully I can finish it this summer.
Regarding the modifications: I only scaled up the vanilla textures and applied some filtering to make them look less blurry. Besides of that .mat files are not changed. The models need some more informations (TBN data, like the Max .cmp exporter writes) and that’s all. I have a batch process which adds the data to original models. Additional textures (height and normal maps with baked in self shadowing) are loaded from separate folders depending on the diffuse texture name. But I am currently working with .Nx to test more additional maps. We will see with what we’ll come up with.
-
So for those who enjoy my videos here are two with the current state:
http://www.flnu.net/downloads/fl0807.mp4
http://www.flnu.net/downloads/fl0807li.mp4Lots of internal fixes, fixed pipeline is gone (all shader now), optimizations and real post processing. I also added ambient occlusion maps. Plus I decided to scale down the ambient light intensity, since it is quite high in standard FL.
Still some work left, though. Feedback is welcome!
As always the stutters come from running FL server and FL on the same machine.
-
Ow! Details and specualrity of textures are gorgeous. It’s perfect! I love it!
I have and idea, for heightmaps, it should be nice to compil them to vectorial format to make them raw material for future improvements and also to be edited with ease.
-
Yeah I really like to look, too At certain places I am even surprised how good it looks now. I am still working on improving it, though. I decided to ignore point lights since it is really expensive to cast shadows for those (and I have not implemented them). Here is a video from NY without the point light at the planet: http://www.flnu.net/downloads/fl1007.mp4
Skotty and I think it is still ok. Other places look even better, because the missing shadows made it look strange.
I plan to automatically do some stuff for planets anyway so it should not be needed and also look better later on.
Regarding the heightmaps: You’re right, vector format is always better. I’ll see what I can do.
Also two nice screenshot I took while testing:
-
Wow nice! It would be an awesome thing to make vector format be readable by FL. Like that it would be saved as the graphics would never be outdated and there should be only diffuse maps to change. I’m waiting your mod so hard!
And did you changed specularity for each texture or for each model and what does it make if you totally remove specularity from the texture or model? Just to see if Nomad ships and stations and also asteroid could use heightmaps without having a metallic look.
-
Hehe, I know I am teasing you, but here are two more videos where I really liked the look:
http://www.flnu.net/downloads/fl12072.mp4
Here this model is not modified, meaning only diffuse maps:
http://www.flnu.net/downloads/fl1207.mp4Regarding the specularity: Since this is partially a PBR renderer, you have a BRDF and thus a roughness and metalness parameter for each material (also there will be some more like specular intensity for the environment maps). Currently I only know which model and texture is being rendered, so until we reverse more there will be a file where you can set all these values for each texture name (the names are taken from the .mat etc. utf nodes). I will try to make it not a pain to edit and preview those values
-
Nice renders! They are really beautiful. Shadows? Are you kidding? No? Or I don’t remember well? @_@
Thanks for the explanations . It’s nice to see that things become nicer and nicer over the time.
How did you implement these “sliders” to change metallic look, will it be editable ingame, via utfeditor or with a third party software.
Roughness map?… =_= I thought I knew every thing about rendering maps but here, it’s totally new! Thanks to have allowed us to have a better knowledge in computer rendering.
-
There is quite a lot material out there e.g. https://learnopengl.com/#!PBR/Theory in the end there are some maps mentioned (I don’t have implemented all of them and there are a lot more possible maps). Currently I calculate the roughness from the luminance of the diffuse map in the shader, if there is no existing roughness map. You’re probably not interested in the math part, but there is also other interesting stuff in the article.
Keep in mind that there is not “the” rendering technique. My solution is also a variation of different techniques combined, which is not unusual.
Regarding the material values: I think that I can create a program with a preview ( I already have a renderer which can load the cmp and mat files etc.). But its possible that I postpone that for after the release of the wrapper.
Btw. shadows have been there quite early and it is also one of the last things on my list: I want to exchange them for a better shadow rendering technique.
-
Ok! I have take a short look at your link, that was exactly what I thought about PBR. I already watched a podcast on Youtube about this were they said that each real life material has its virtual clone made by technicians, engineers and artists. Nice to see that finally asteroid, planets and Nomad structures will benefit of all modern techniques and carry some consistency, the game would become really photorealistic.
As for maths, give me a link, please? I could understand it.
I know that there is not only ONE technique. you have not to use every maps because if you already use height maps to make the relief what is the need to use bump and normal maps? Height maps are far more powerful than bump and nrm maps! Are height maps more resource demanding than bump or nrm maps?
Thanks for creating the material viewer, it will be very useful for us.
I was talking about model shadows where you can see the shadow of your [ship] at Kusari Battleship hull, it’s quite nice, I like it!
Edit : Is there a way to have emissive maps, it could improve lighting.
= edition