New Renderer (OpenGL 3.3)
-
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 -
Ah I see, but it’s just from the normal shadow rendering. So nothing new here The new technique should only create sharper edges and a larger shadowed area (it’s quite limited right now).
I was referring to the math in the same article, but if you are familiar with all those expressions here is a nice article which goes into more detail: http://renderwonk.com/publications/s2010-shading-course/hoffman/s2010_physically_based_shading_hoffman_a_notes.pdf
Regarding the maps: The names are a little bit problematic because often e.g. the name bump map is used for a normal map but there are also the old dot3 bump maps (which are greyscale). So to prevent misunderstandings you always have to make sure what map the author exactly is meaning with the name. Glossiness and roughness map can also be the same because 1-roughness is usually glossiness. But there also is specularity, which can be converted to glossiness etc., which again depends on your lighting formula. So you really have to pay attention.
It makes sense to mix height and normal maps because then you can put all the fine details onto the normal map and the real visible height difference go into the height map. (This is how I do it plus the normal maps are a variation of valve’s ssbump maps so that they have self shadowing baked in using the appropriate height map). I will explain all the maps I use when the wrapper gets released (there might still be changes until then).
Usually I test the specific map and if the benefit is not high enough I don’t use it. But I am open for suggestions, even after the release.
-
Edited last post.
It’s more physic than maths. It looks like my CPGE cours (Cours Préparatoire aux Grandes Ecoles to become an engineer via an engineer school not via a master, if I had 1 or 2 years more to learn what I had to learn it should have been better but I can’t redo the past…:( ) but here it’s optic and I like this so it shouldn’t be too hard to read.
I know the difference between bump and nrm, I already noticed that there is some misconception about these terms.
I walked around textures in games DS1 and Nexus TJI and every time alpha channel was used for a specific map and I tried to extract those alpha channel and that was not so difficult to do via Paint.net and its channel mixer.
So we can use every maps for a different task that they were intended to be used. e.g. in DS1 they use the “normal map” to make alter color appearance.I’ve an idea! Mix nrm and height maps in one file and use the alpha channel to mix them, like this it should drastically reduce the files number and also reduce the amount of space used by the wrapper.
-
Actually, I already compress the normal maps with ATI2N format and the height maps have ATI1N. So it is the smallest it can get. But you’re right you could use maps for different purpose, as long as the texture compression doesn’t stand in the way.
I see that you have some knowledge about the topic and especially the mathematic background (which is good). Of course it is more physics, but the used tool is mathematics Maybe once it is released you can try to experiment with the shader code of the wrapper to test different lighting models out, if you are into that stuff. There might be even a better looking one than I use now.
Also there are emissive maps: FL uses them, so they are availlable.
-
I’ve begun to read the cours about light.
To summary the more homogeneous in refraction a medium is, the less it scatter. Also the more complex light transmission is, the more absorption is. (a+jb : 0+100j = 100 (cos90° + j sin90°) = 100 (cos(pi/2) + j sin(pi/2)) = full absorbtion of a wavlenght?) There is also integrals to do with an interval from 400 to 700 nm I think.
The less rough a surface is, the more it’s reflective and the more rough a surface is, the less it’s reflective and it become as dull as diffuse map.[Edited grammar and translation mistakes]
-
We should talk about it via PM, it could be better and it would not flood the topic. If I did not understand something it would be better to do it.
I haven’t finished to read your documents so I should have been wrong with some concepts.
-
Yeah, pm is better. I am currently learning for an exam next week so not much time either.
-
Ah! Understood! Good luck! The fight will be so long that brains will go on fire!
-
Just wanted to say your work is truly incredible… been drooling over all your videos and pictures. Amazing stuff!
I’m also very curious to see what your rendering effects have done to interior locations eg the various moody space & planet bars? When I think of the bars & shops on the Bretonia, Rheinland & Kusari homeworlds there’s lots of interesting light sources and a few moving objects creating all sorts of interesting light & shadow effect opportunities. Plus you’re a lot closer to the low res textures so FL really shows it’s age here…
-
Thanks guys for the kind words! This really helps to stay motivated
The interiors look a little bit better (because of the improved lighting etc), but I have not yet processed any of the textures (I wrote some posts back what I do with them). Also, since there is no material system yet and I treat everything as metal, all the characters look like they are made of metal (which gave me quite a laugh in the beginning ;)). This is the reason why I didn’t show any pictures yet, it’s just not worth it at the moment.