Jump to content

Recommended Posts

Posted

I am creating a level with the brushes, however I am encountering certain drawbacks, such as the camera turning in another direction, walls and entities suddenly appearing. It is as if they were not there, and with the turning of the camera the process is visualized when they begin to be drawn on the stage.


Any recommendation to implement a correct level mapping?

Thank you.

 

 

Astrocuco.thumb.png.c76e0fb3de2d6e437e7dca099625e11e.png

Posted

This is the occlusion culling working and the renderer not keeping up. I've fought with this for my years and figured out that disabling vsync by default and capping the framerate above 100fps reduces the effect a lot. This will keep the app at a consistent rate while reducing the culling effects  I use 120hz as my target framerate.

context:Sync(false, 120)

 

  • Upvote 1

Cyclone - Ultra Game System - Component PreprocessorTex2TGA - Darkness Awaits Template (Leadwerks)

If you like my work, consider supporting me on Patreon!

Posted

This happens on slower graphics cards. I wouldn't worry about it, I see the same thing in any game that uses hardware occlusion culling. I definitely would not change your game style.

  • Like 2

My job is to make tools you love, with the features you want, and performance you can't live without.

Posted

I should add something, this does not happen in the editor as such. It only happens when I run the game in development mode. Possibly it is because I am running the editor and the game instance as such.

So possibly the problem is solved when I launch the game standalone without the editor.

I am using a GTX 1050ti

 

 

Astrocuco.thumb.png.c76e0fb3de2d6e437e7dca099625e11e.png

Posted

The editor does not use occlusion culling because it is an event-driven application.

  • Like 1

My job is to make tools you love, with the features you want, and performance you can't live without.

Posted

I remain concerned. It turns out that in the Leadwerks example in the first person shooter game, this does not happen. In my level, with brushes only, the flaw is more than obvious, so I think I'm missing something.

 

 

Astrocuco.thumb.png.c76e0fb3de2d6e437e7dca099625e11e.png

Posted

That's because my FPS example doesn't use a skybox and the camera clear mode is set to only clear the depth buffer. ;)

  • Thanks 1

My job is to make tools you love, with the features you want, and performance you can't live without.

Posted
15 minutes ago, Josh said:

That's because my FPS example doesn't use a skybox and the camera clear mode is set to only clear the depth buffer. ;)

Hey, the question is: How do I do the buffering, what is the command, I am looking at the fps player file but I don't see anything. I only found this.

 

image.thumb.png.1aacd1e70207e9aa3ad8d37d75b1b802.png

 

 

Astrocuco.thumb.png.c76e0fb3de2d6e437e7dca099625e11e.png

Posted

Actually, I am not sure I did anything with the clear mode, but a bright skybox will definitely be more visible than just a black background in an already dark level.

  • Confused 1

My job is to make tools you love, with the features you want, and performance you can't live without.

Posted

image.thumb.png.7584a57ad2e29821bc5c800ed9ed9add.png

42 minutes ago, Josh said:

Actually, I am not sure I did anything with the clear mode, but a bright skybox will definitely be more visible than just a black background in an already dark level.

I have managed to reproduce the error at the example level, this is a lot of perseverance to solve something. The error is evidently with the skybox that is implemented in the level. However it strikes me the intention that it is only reproduced in this one place. That is to say the rest of the map does not present this error.

So what I see in this and is that the corridors should not be so closed, it's just what I can think of at the moment.


Translated with www.DeepL.com/Translator (free version)

 

 

 

Astrocuco.thumb.png.c76e0fb3de2d6e437e7dca099625e11e.png

Posted

The brush culling is less noticeable with a black clear buffer (This is set up as the default) with the frame rate above 90. Your CSG gets collapsed into multiple models, but in most cases half of your one room will be it's own slice. There hasn't been any clarification how the engine determines how to cut up the CSG.

Another option is to model your indoor level into sections so you can control how your indoor levels cull. This is a big pain since the main reason I switched to Leadwerks was due to it's editor and the obj export doesn't export the uvs. I haven't found any blender plugins that mimics the texturing features like in Leadwerks. 

I would not worry about it until your art pass in which you would be in a better place to mesh your level off the CSG if it really bothers you that much. My game however needs the collapsed CSG for the mechanics to work.

  • Like 1

Cyclone - Ultra Game System - Component PreprocessorTex2TGA - Darkness Awaits Template (Leadwerks)

If you like my work, consider supporting me on Patreon!

Posted

I think I am going the way of many in the aspect of creating a map with Leadwerks. 

One thing I have noticed is that if I use very small chunks for walls, like a lego, in the graphical aspect the Occlusion culling system is much more evident

when I rotate the camera. So possibly the solution is to create with bigger joke elements for a corridor and avoid small parts.

 

 

 

 

Astrocuco.thumb.png.c76e0fb3de2d6e437e7dca099625e11e.png

Posted
4 hours ago, ЖYueЖ said:

One thing I have noticed is that if I use very small chunks for walls, like a lego, in the graphical aspect the Occlusion culling system is much more evident

Right. This is why I suggest making entire rooms models if you can. The entire room will not get culled because you'll be always looking at it.

Cyclone - Ultra Game System - Component PreprocessorTex2TGA - Darkness Awaits Template (Leadwerks)

If you like my work, consider supporting me on Patreon!

Posted

I think you are paying way too much attention to a detail that does not matter. I see this effect happening in AAA games, and like I said, it's due to your old graphics card and the average user isn't going to have the same problem.

  • Like 1

My job is to make tools you love, with the features you want, and performance you can't live without.

Posted
17 hours ago, Josh said:

I think you are paying way too much attention to a detail that does not matter. I see this effect happening in AAA games, and like I said, it's due to your old graphics card and the average user isn't going to have the same problem.

Well, Josh you are right, in the absence of knowledge I tend to get obsessed with some things.  But I'm reassured that you mention that. So on any user's computer with a more powerful computer that won't be so obvious. But what does have me thinking is that in the leadwerks example that doesn't happen, so I'm starting from optimizing this. But you are absolutely right. 

  • Thanks 1

 

 

Astrocuco.thumb.png.c76e0fb3de2d6e437e7dca099625e11e.png

Posted

I recall you being on a 1050ti and I also use that card for my development machine and I think it only has 2GB if VRAM. 

Yeah, a better card means it can do more things at once, but if your game is capped at 60hz, other engine is only going to go that fast. Due to how the renderer is set up, things will cull based on the speed of the app. Again, I would just set vsync off by default and put a higher frame rate as the second parameter in your sync call so the game will not fluctuate in speed too much. If you do 120fps and the game goes to 90fps; you'll barely notice it compared to 300 to 90. 

Cyclone - Ultra Game System - Component PreprocessorTex2TGA - Darkness Awaits Template (Leadwerks)

If you like my work, consider supporting me on Patreon!

Posted

It's not only the framerate, but the time the GPU takes to return data to the CPU. The CPU does not wait for the GPU to complete the task, but how long it takes for that data to become available is independent from framerate and I would guess is highly variable across hardware.

My job is to make tools you love, with the features you want, and performance you can't live without.

Posted

While it does fix this dreaded issue, I'm noticing a performance penalty in debug mode. I have it as a console variable and I'll continue to experiment with it. I didn't really care about the brushes as much as I did with the point lights.

I think setting this to false on the camera is just omitting all OC functionality which is causing the application to run slower.

  • Like 1

Cyclone - Ultra Game System - Component PreprocessorTex2TGA - Darkness Awaits Template (Leadwerks)

If you like my work, consider supporting me on Patreon!

Posted

I would have to deal with this in some other way. For example manage the performance with the drawing spacing of the brushes and meshes, as well as the lights.  And play with a level in the form of corridors in different directions, because equally what you put behind the camera is not rendered. 

That is to say, the optimization would have to be done manually. 

 

 

Astrocuco.thumb.png.c76e0fb3de2d6e437e7dca099625e11e.png

Posted

With C++ I tried disabling occlusion culling for the collapse brushes and it didn't do anything. For lights I'm thinking adding Draw hook functions for every point light that has a radius greater than 5. It'll check if the camera's position is in it's AABB and temporarily disable OC mode if the point intersects and re-enable it if the camera is out of it's bounds. I'll have to see if it's worth it. 

You're playing with fire when it comes to this stuff this is why Josh recommends you just leave everything as default.

  • Like 1

Cyclone - Ultra Game System - Component PreprocessorTex2TGA - Darkness Awaits Template (Leadwerks)

If you like my work, consider supporting me on Patreon!

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...