New Renderer (OpenGL 3.3)
-
Very interesting project. Spectacular results so far as well applied to vanilla Freelancer. I’m not much of a graphics programmer but I would be very interested in it and its internals for a project I’ve had floating around the back of my head for a while, and I’m sure it would absolutely shine with something designed around it.
-
Thanks! I don’t know if you’ve read my reply, but I solved the latter last Sunday: http://the-starport.net/freelancer/forum/viewtopic.php?post_id=62352#forumpost62352 From what I gathered it is a windows problem since I had the same low res textures with my wrapper. I added it to the Limit Breaking 101 wiki entry.
@Kazinsal: Not sure what you have in mind but not that you get any ideas: I won’t have the time and I don’t plan to write another wrapper Also it will only work with Freelancer (I don’t translate every d3d8 call plus you need some hooks to get the textures etc.).
-
I can tell you it’s not a Windows problem because our D3D9 implementation doesn’t have that issue. As far as I know, it’s a weird interaction between AMD GPUs and D3D8 games.
-
If you use my wrapper there are no d3d8 calls anymore and the problem still remained. So my conclusion was that it must be another problem, since it did not matter which maximum texture size I returned. I even found the return value while I was reversing FL and changing it in memory has no effect. But maybe we should continue this discussion in the other topic.
-
Schmackbolzen wrote:
@Kazinsal: Not sure what you have in mind but not that you get any ideas: I won’t have the time and I don’t plan to write another wrapper Also it will only work with Freelancer (I don’t translate every d3d8 call plus you need some hooks to get the textures etc.).Oh, no, not another engine. Something I’ve been thinking of proof-of-concepting in Freelancer. I can’t seem to tear myself away from this engine…
-
Hehe, I see. Well I am curios what people will do with it, once it is released. But it is still a long way until that
-
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.