New Renderer (OpenGL 3.3)
-
While I did not have much time I managed to implement rough cubemap reflections. They are way more fitting now
Also I think I have found a way so that you can use the lighting model in blender and probably port it from there to other modeling software. It is actually quite easy to build your shader pipeline in blender. When I am sure it is really accurate Iāll post it here. Then you can see how it will look in your modeling software itself.
-
Yes, it looks really beautiful!
My plan is to try this one:
https://www.turbosquid.com/3d-models/3d-starship-spacecraft-model-1277308
Already got it working in blender with the mentioned shader pipeline. Or do you have a better one? -
if you have Discord, hit me up, I will hook you up with this: https://sketchfab.com/models/e7a1b0d441c74d848f6744fb273eb38e
I have a more detailed model in the works, but it isnt textured yet.
Im experimenting with PBR on bits of the ship, though: https://p3d.in/eodqrP.S. my discord is eigos #4005
-
That is only partially true, since I only found the crash because I have a notebook with a 970m. Only happens when you undock, not when in space. And it is after the frame was rendered. So it is not the typical bug. But I will find the cause, donāt worry
-
Here are some new screenshots with the new material system (based on a json file). Also with it in place I now can use alpha test for shadows. As a result textures now donāt block the light completely if they have transparent parts (and you set the right parameter for the material). The space domes also have glass material parameters as you can see at the reflections.
-
Currently there is the base texture (RGBA) and greyscale for roughness, specular intensity (mixes between diffuse and specular so it basically is percent) and metalness. For the last ones you can also set fixed parameters in the material library file, so you donāt necessarily need textures for those.
And of course there are the heightmap and normalmap textures. The heightmap should only contain very rough heights, as the fine details are in the normal map. It is also used to bake the self shadowing into the normal map (Valveās ssbumps). You can consider replacing them with real geometry so you donāt need them at all.
I will try to post the blender shading pipeline graph soon when I got the time for it.
Edit: Forgot the standard FL texture variants. They did not change, so emissive and detail texture etc. is of course supported, since FL uses it.
-
Okay ty. But i still cant figure out what is roughness and metalness.
In my workflow i have:
reflection - map for a color and intensity of reflection, somehow multiplied by Fresnel IOR value with base of 1.6. I guess full mechanics of this is almost something as your specular intensity, but using a falloff of Fresnel type. Is that possible in games?
reflection glossiness - a grayscale map or value for smoothness of reflection, where value of 1 making reflection sharp as plain reflection map without modification, and values around 0.75-0.65 making it much more realistic for metals;
asssigning a map allows this at certain places. Is that the one you call roughness?edit: iāve just found that one: https://docs.chaosgroup.com/display/CWVRAYMAX/Metalness
but i still cant get why roughness shall be used in some āglossinessā in BRDF (not the same as reflection glossiness i told above, i dont know what is that). Anyway i dont own that version of vray that has āmetalnessā, although i still can attempt to draw it, but for that i need to figure out what exactly it does. -
Glossiness is just the opposite of roughness, so if you invert the texture / value it means the same. In you picture the value of 1 glossiness is 0 roughness and 0.1 glossiness is 0.9 roughness. There might be some differences how some BRDF formulas treat those values, though. So depending on the light model, the same roughness value can look different.
Your reflection RGB texture is also a way to do it (actually I had it included in my shader), but I came to the conclusion that it is easier just to use one base colour texture for everything and do the rest with the greyscale textures / material parameters. This also saves memory and bandwidth.
Metalness just defines how much of the reflection is based on the color texture. If it is 0 the reflection will just be pure white colour like plastic.
If you find a case where the material can not be recreated with my current setup I can adapt it.
-
Your reflection RGB texture is also a way to do it (actually I had it included in my shader), but I came to the conclusion that it is easier just to use one base colour texture for everything and do the rest with the greyscale textures / material parameters. This also saves memory and bandwidth.
Yeah i also do this and to differ it (for scratches or worn effects f.e.) i use material blending by some dirt masks, where almost same materials have different reflection values.
Got ya, just my inverted reflection glossiness.Metalness just defines how much of the reflection is based on the color texture. If it is 0 the reflection will just be pure white colour like plastic.
So its a kind of linear dodge multiplier of typical reflection map? Dont get it.
Iāve found a pic how Fresnel reflections work with an IOR value. So it basically applies that mechanics to reflection map and power of reflection is defined by IOR value.
I am not aware if rasterisation engines is capable of this or it is RT only, but would like to hear your opinion:
As i know that mechanics is considered most realistic in term of reflections. -
Fresnell is only part of todayās lightning models. So yes it is included, but it is only one term of the whole equation. If you really want to know the whole model, look for the GGX stuff, which even blender uses.
You can imagine the metallness as a blend between white texture and the base colour texture. The more it becomes zero, the more the base colour for the reflection is going to be white. Imagine a billiard ball. The reflection is always white no matter what colour it has. So metalness is 0. If you choose a golden colour as base colour texture you will get colour shifts etc. when you set metalness to 1. If it is zero it only will have white reflections and it will look like plastic with gold colour.
-
So itās been a while. I was able to reverse quite a bit more and also could integrate it into the shadow rendering. This means some big performance wins plus some other benefits.
Here is a video with the current state: http://www.flnu.net/downloads/fl0210.mp4
Notice, that the moving shadow at the beginning would not have been possible before, since it is offscreen. Also I would not get about 100fps, it was more around 40.
Also currently there is no lighting attenuation. I need to somehow integrate the curves FL allows you to customize.
I am still fighting a bit with the coordinate system FL uses, so this is one blocker. But all in all this is a huge progress, so there is not that much left to do now.
-
when you are done FL can be sold as next gen game again
-
Hehe, thanks!
Here are three other videos:
http://www.flnu.net/downloads/fl0310.mp4
http://www.flnu.net/downloads/fl0310_2.mp4
http://www.flnu.net/downloads/fl0310_3.mp4I am very pleased with the current look and will try to keep the direction. Tell me what you guys think. Are there still problems with the look? Or is it perfectly fine? Better than fine?
-
It surely looks good enough to be worthy of ābetter than fineā!
What (in a nutshell, and in laymanās terms) does you project entail? Will you be āreleasingā a graphically revamped version of FL? Do you, apart from the graphics rendering, still use all the files that make up the game? Or are you writing a whole new engine? (BTW I apologize if I bore / bother you with these questions; feel free to ignore!)
-
The look is great.
It is more than old FL players could dream of.
But I assume you suffer the same disease most of us haveā¦ the wish to make it perfect. The problem with that is, once you get a step closer to perfection you run across many new ideas which would make it even better. Am I correct? -
I agree with OP, looks great, how Freelancer should have looked like in the beginning . But trying to reach perfection, imo, you might get burnt out. I believe you have other projects that you have started that Iām sure you would like to work on again. You can always take a break from it, work on other things then come back with more ideas for this. But its your baby, you do what you want to. Really impressive work though