Freelancer Community Network
Reminder: Internet Explorer 6 or below are NOT supported.
HomeHome
ForumForum
WikiWiki
DownloadsDownloads
ForgeForge
Multiplayer Connection Tutorial
Collapse/Expand Random Image
Collapse/Expand Login
Username:

Password:

Remember me



Lost Password?

Register now!
Collapse/Expand Chat
Collapse/Expand Who's Online
51 user(s) are online (32 user(s) are browsing Forum)

Members: 0
Guests: 51

more...
Collapse/Expand Donations
Monthly costs: -30€
Income (ads): +5€
Donations (last month): +5€

Current balance: 0€
(last updated 06/2020)

Please make a donation if you want to help keeping The-Starport online:

Bitcoin address:
Thanks!
Collapse/Expand Links
Collapse/Expand Advertisement
There are currently 31 users playing Freelancer on 41 servers.
July. 9, 2020

Browsing this Thread:   1 Anonymous Users



 Bottom   Previous Topic   Next Topic  Register To Post

« 1 ... 4 5 6 (7)


Re: Librelancer 2019.08
Just popping in
Joined:
2015/9/13 18:49
Group:
Registered Users
FLServer Admins
$$$ Supporters $$$
Senior Members
Posts: 5
Offline
Amazing! Managed to watch the cut scene in 2560x1440p.

Also flew around New York for a bit. Good work!

Posted on: 2019/8/10 17:55
Top
Re: Librelancer 2019.08
Home away from home
Joined:
2008/9/11 15:55
From Somewhere at Moscow
Group:
Registered Users
FLServer Admins
$$$ Supporters $$$
Senior Members
Posts: 1761
Offline
How about some light sources at system editor?

Posted on: 2019/8/19 13:09
Open Sirius Mod
Top
Re: Librelancer 2019.08
Not too shy to talk
Joined:
2013/3/16 7:49
Group:
Registered Users
Posts: 72
Offline
@Helloween I don't entirely know what you mean. The system viewer loads the light sources defined in the ini, there is not editing functionality at present and for now I recommend Freelancer Mod Studio for graphical system editing. I don't expect to write a system editor tool until a lot of the base gameplay is settled, so I can make sure all my stuff is correct.

Posted on: 2019/8/19 14:11
Top
Re: Librelancer 2019.08
Home away from home
Joined:
2008/9/11 15:55
From Somewhere at Moscow
Group:
Registered Users
FLServer Admins
$$$ Supporters $$$
Senior Members
Posts: 1761
Offline
Sure all correct.
Just idea to use sytem editor as showcase of new not yet released systems by making their screenshots for example

Posted on: 2019/8/23 0:02
Open Sirius Mod
Top
Re: Librelancer 2019.08
Not too shy to talk
Joined:
2011/11/22 17:43
Group:
Registered Users
Posts: 72
Offline
Latest SystemViewers work for me, but not gameengine itself. Some of previous daily builds work, some don't.

And this:
Open in new window


~6 FPS

Here's that model, Kavash_Base_3:
https://www79.zippyshare.com/v/VNS8ymtR/file.html

~6000 meshes of 3 materials.
I fixed that by making meshes of same material lie in one line inside of a vertexbuffer, combined same into single, and eliminated index buffers as well. Current tested snippet in pascal https://pastebin.com/RZy9VNs2

Open in new window

Open in new window


Well, that's fun, but wrong rendering and black screen are my regular companions)

Posted on: 6/6 3:46
Top
Re: Librelancer 2019.08
Quite a regular
Joined:
2010/6/13 13:38
From Russia, Penza
Group:
Registered Users
Posts: 164
Offline
I recommend you split this model, because FL can't run single object with this count of polygons.

Posted on: 6/6 22:10
Top
Re: Librelancer 2019.08
Not too shy to talk
Joined:
2011/11/22 17:43
Group:
Registered Users
Posts: 72
Offline
The model is from Y-Universe combomod, made of many tiny (4-6 vertices) details being of same material ID. Technically, 65536 vertices are allowed per 3db, I just hope the number is not treated as 32767.

Details in this model are unique, possible optimization approach isn't clear. However, Freelancer and UTFEditor turned out being able to handle it just fine.

Without looking at above test, the solution is just streaming meshes into vertexbuffer by material, not by the order known as "for i = Ref.StartMesh to Ref.MeshCount".

Posted on: 6/7 5:47
Top
Re: Librelancer 2019.08
Not too shy to talk
Joined:
2010/8/27 14:02
Group:
Registered Users
Posts: 76
Offline
It's just a very badly exported model. VMeshGroup of same material reference are expected to be pre-merged within block range of single VMeshRef. There's zero benefit of fragmenting it.

This is clearly a very bad attempt to get around the fact milkshape exporter can't properly export vertex normals (and exporter being dumb enough not to merge mesh elements by materials).

All in all that fragmentation had led to 6200+ draw calls and that's the cause of such low FPS. Model doesn't exceed any buffer limits nor is anywhere close to, it's just a very bad export case.

Posted on: 6/7 10:11
Top
Re: Librelancer 2019.08
Not too shy to talk
Joined:
2011/11/22 17:43
Group:
Registered Users
Posts: 72
Offline
Pre sort them https://pastebin.com/Sdj3vvwz
This is a test for Indexed this time.
But i'm unaware of the OpenGL pipeline and whether it shares same approach, various contexts, reusage of shaded contexts and so on.

In current code the 3db model contains ~6000 _3d structures for making calls to DrawIndexedXXXXX. However, they're ordered by a material so calls to shading context occurs 3 times only. Calls to draw don't matter almost as shaded context for a particular material is reused.

ps
I'm unable to measure CPU load because of 8+8 cores on modern hardware. Task manager shows 6-8% lol. Gotta surf the web for some specialized tool.

Posted on: 6/8 14:59
Top
Re: Librelancer 2019.08
Not too shy to talk
Joined:
2010/8/27 14:02
Group:
Registered Users
Posts: 76
Offline
This model has arbitrarily bloated number of VMeshGroups in mesh for no reason whatsoever. It's not engine job to resort and merge groups, it is exporter job to produce sane result by combining face groups matching material within each LOD of each compound part.

I've just re-exported it in Maxlancer which resulted in only 6 VMeshGroups. 6 draw calls is all it takes and all it should have ever been in the first place. There never was any excuse to have any more than that.

Posted on: 6/9 8:39
Top
Re: Librelancer 2019.08
Not too shy to talk
Joined:
2011/11/22 17:43
Group:
Registered Users
Posts: 72
Offline
It's rendering optimization/resorting.

Well, there's another bug that came in sight both in my attempts and LibRelancer: not all parts' maxtrices are applied in real.

These are 3 Aurora nebulae in Ku02 system in original Freelancer:
Open in new window

Open in new window

Open in new window


But in SystemViewer all three are rendered in one position:
Open in new window

Open in new window

Open in new window


starsphere_ku02.cmp

Mine renders same as i started "optimizing". Unlike old archieved build, where i used to reapply shader on each mesh and reset matrices for each part, but that, of course, impacts performance. (images are HD just in case, right click - open, my browser cuts large previews here so i reduce them)

I'm personally planning to bind a buffer of part indices parallel to vertices and allocate Parts[MAX_PARTS] in a shader. More no thoughts yet.

About blending, texture's runtime format is incorrect. In my code (and this is Direct3D) there's a conversion:
Code:
          Alpha := FreeImage_IsTransparent(Targa);
          if Alpha then
            Format := DXGI_FORMAT_B8G8R8A8_UNORM else
            Format := DXGI_FORMAT_B8G8R8X8_UNORM;
All i know is this makes match Freelancer in drawing starspheres.

Posted on: 6/14 11:23
Top
Re: Librelancer 2019.08
Not too shy to talk
Joined:
2013/3/16 7:49
Group:
Registered Users
Posts: 72
Offline
Hello.

I don't check this very often, so if you're having rendering bugs like in Ku02 please report them in the github issues with the version of the software you're using.

R.E. that awful cmp/mesh:
- There is a very limited amount of mesh fixups applied in the engine on load time, but they're only applicable in very small amounts of situations. The only solution there will be to export the model properly, as the FL resource loading model simply doesn't work in such a way that I can modify the vertex buffers at runtime and maintain full vanilla compatibility.

And with "Latest SystemViewers work for me, but not gameengine itself. Some of previous daily builds work, some don't." this is not something I can do anything with as there is simply not enough info. There's a lot of game engine work going on at the moment, and while it does work with vanilla I can't guarantee mod compatibility. Especially if you're not using the nice Copy Details button I made when there are crash errors

Posted on: 6/14 16:17
Top
Re: Librelancer 2019.08
Not too shy to talk
Joined:
2013/3/16 7:49
Group:
Registered Users
Posts: 72
Offline
Mini investigation for fun:

The reason you're getting 6200+ drawcalls and 10fps on that specific model, besides the fact it is completely broken, is because Librelancer could not find the materials at load time. If the .mat file is loaded before the model (e.g. you set the archetype right), it is safe enough to apply the reordering optimisation and it drops down to 6 drawcalls, proper FPS. Though it's not guaranteed if it can't find a place to shove the new index information.

Posted on: 6/14 17:04
Top
Re: Librelancer 2019.08
Not too shy to talk
Joined:
2011/11/22 17:43
Group:
Registered Users
Posts: 72
Offline
The game engine crashes on intro scene's end (in New Game start) for me.
Code:
GL Error: Invalid Value
   at LibreLancer.GL.CheckErrors()
   at LibreLancer.UniformBuffer.BindTo(Int32 binding, Int32 start, Int32 count)
   at LibreLancer.BasicMaterial.Use(RenderState rstate, IVertexType vertextype, Lighting& lights)
   at LibreLancer.CommandBuffer.AddCommand(RenderMaterial material, MaterialAnim anim, WorldMatrixHandle world, Lighting lights, VertexBuffer buffer, PrimitiveTypes primitive, Int32 baseVertex, Int32 start, Int32 count, Int32 layer, Single z, DfmSkinning skinning)
   at LibreLancer.Utf.Dfm.DfmMesh.DrawBuffer(CommandBuffer buffer, Matrix4x4 world, Lighting light, Material overrideMat)
   at LibreLancer.Utf.Dfm.DfmFile.DrawBuffer(CommandBuffer buffer, Matrix4x4 world, Lighting& light, Material overrideMat)
   at LibreLancer.CharacterRenderer.Draw(ICamera camera, CommandBuffer commands, SystemLighting lights, NebulaRenderer nr)
   at LibreLancer.SystemRenderer.Draw()
   at LibreLancer.RoomGameplay.Draw(TimeSpan delta)
   at LibreLancer.FreelancerGame.Draw(Double elapsed)
   at LibreLancer.Game.Run()
   at lancer.MainClass.<>c__DisplayClass0_0.<Main>b__0()
   at LibreLancer.AppHandler.Run(Action action, Action onCrash)

Recent daily build.

Another crash was about [; parsing aka disabled ini section when i tried to load a mod. I'm running virtual machine actually, wherein 4.7.1 NET is installed only. Systemviewer is stable for me though.

______

Looks like i fixed parts in my code by resetting cached material index when a new different part starts rendering https://pastebin.com/yru1Rq7E

Posted on: 6/15 2:16
Top
Re: Librelancer 2019.08
Not too shy to talk
Joined:
2013/3/16 7:49
Group:
Registered Users
Posts: 72
Offline
Thanks for the error, I'd actually missed something in the OpenGL spec there. Engine should no longer crash on vanilla (though it isn't very interesting yet)

Posted on: 6/15 9:35
Top
« 1 ... 4 5 6 (7)