Git Product home page Git Product logo

Comments (15)

gvissers avatar gvissers commented on July 19, 2024

I could imagine there being a backface culling setting, with a more lax setting fixing the issue but degrading performance.

You would no longer be able to see your character if the camera is inside an object (e.g. house or rock) if backface culling is disabled.

That log does indeed look silly though, it should have been closed at the bottom.

from eternal-lands.

NetSysFire avatar NetSysFire commented on July 19, 2024

That log does indeed look silly though, it should have been closed at the bottom.

Well yes but actually no. The reason for that is because of performance reasons because you would otherwise never see the bottom of that log since it is actually a dead tree (and therefore this part would be underground so it can really never be seen).
It has been re-used but it illustrates the problem with simple meshes which do not have any "thickness" to them, like the helmet and the characters hair.

from eternal-lands.

NetSysFire avatar NetSysFire commented on July 19, 2024

el backface culling 3

Here is the example with cave entraces. This specific one is the one with the airship thingy leading you to Irillion. This can also be reproduced with many other cave entraces, like, as already mentioned, the Desert Pines storage cave entrance.

The specific problem with all these cases is the algorithm culling faces you can actually see, which is unintended.

from eternal-lands.

raduprv avatar raduprv commented on July 19, 2024

Yes, some objects such as the log were used wrongly by the map makers. Some like that cave entrance might have the wrong normals. The solution I guess is to remake those objects, not to disable backface cooling.

from eternal-lands.

NetSysFire avatar NetSysFire commented on July 19, 2024

I am not asking to disable backface culling as it is important due to how stuff works and because of performance reasons. However it is culling faces that should not be culled - this is most notably impacting "zero-width" objects like armor, parts of the hair and some other objects, like this log which should also illustrate the problem well, even if it should never have been used in this way. That means that backface culling needs to behave differently here.

from eternal-lands.

gvissers avatar gvissers commented on July 19, 2024

And how would you determine how it needs to behave?

from eternal-lands.

NetSysFire avatar NetSysFire commented on July 19, 2024

As seen just above, this is a legitimate example of something that should not happen:

These culled faces would clearly be visible yet they are gone. The log which should not have been used is also an example of a face that would be visible yet it is not.
All of those objects are pretty low poly and therefore have no "thickness" to them as already mentioned.

from eternal-lands.

gvissers avatar gvissers commented on July 19, 2024

I can see the problem just fine. But you seem to be asking for backface culling not to be performed in these exact situations. And I was wondering how to identify these situations, and how to distinguish them from a situation where e.g. a tree is standing upright and the inside is invisible.

If instead you're saying the models should be fixed, there's something to be said for that.

from eternal-lands.

NetSysFire avatar NetSysFire commented on July 19, 2024

Ahhhh alright, I misunderstood what you were asking for.

I think in terms of objects in the environment there may just not be any cases, at least I have not noticed any legitimate cases. We got a case of a misused object and some faulty normals, but maybe make an exception for the character and its armor and/or do some fancy graphics filtering tricks to double-check if a face is in the current camera view before it would be culled. I have no idea how to implement that though, yet it might be costly in terms of performance. However it might be just fine if it is restricted to only the player.

Another thing to think about is whether applying this lax backface culling should also be applied to other characters.

To be clear here, I am not sure if you even can have two different modes of backface culling at the same time but I hope you get what I mean. Selectively disable backface culling for a group of objects. Maybe even make that configurable, so you can choose between:

  • Keeping the original behavior
  • Only applying more lax backface culling to your character and its armor
  • Applying the lax backface culling to all visible characters (may eat performance, but that is up to the player and their rig)

from eternal-lands.

gvissers avatar gvissers commented on July 19, 2024

In theory it could be toggled at any point. But checking if a face is visible is pointless, might as well draw it and let OpenGL determine if it's visible in that case. Also remember that branches (if statements) aren't free, and potentially costly. In the case of the tree, you'd be better of closing the tree at the bottom. I have no idea what's wrong with the arch, but I doubt its the normals. Front/back face is determined by the winding direction of the triangle, not the normals at the vertices. Those would affect lighting, though.

from eternal-lands.

NetSysFire avatar NetSysFire commented on July 19, 2024

I have absolutely no idea about the internals here. In theory one could also just draw the faces regardless and do not do any backface culling for the player and its armor since it should hardly be a difference in performance due to the low poly models and low-res textures. But this is a guess and I do not know what the actual performance impact would be here.

from eternal-lands.

feeltheburn avatar feeltheburn commented on July 19, 2024

Mapwise I've actually fixed a huge ton of incorrectly placed items during the past 3 client updates, that have a "see-through side" on their bottom end. There's a ton of rocks/mountains along with the many different trees that have these. I recall Tahraji Desert being a nightmare, as a ton of random rocks were placed around it "on their sides" so they disappeared depending even at the standard camera height.

I continue to fix these (a side tree could get rocks or 3D grass mound object or such covering the see-through end for example, or rotation normally to put the see-through part underground where it was intended) but not all can be fixed, and something like the cave entrance viewed in an odd rotation like seen above... not much can be done about.

I'd be careful with the idea to "fix the models" though, as this could lead to issues on other maps. There's some places where this see-through gets intentional usage, and I'm not sure I could remember them all. Could lead to different map issues. Not easy keeping track of everything on so many maps that I didn't initially build.

As for stuff on the characters like the helm shown above, that's... well, as a map editor I don't care what gets done with that. ;)

from eternal-lands.

gvissers avatar gvissers commented on July 19, 2024

Right, with that I think we're not going to make code changes to try and fix this, it's just not worth the hassle. Keeping the issue open for now in case peopke want to alert Burn to map problems like these.

from eternal-lands.

feeltheburn avatar feeltheburn commented on July 19, 2024

Not here... Better posted in Map Bugs forum: http://www.eternal-lands.com/forum/index.php?/forum/128-map-bugs/

It'll just get lost here since it'll be a few months before I consider more map work. As well, Acelon's active again and is working on some map stuff even now so he might end up doing some fixes if he sees them posted there.

from eternal-lands.

gvissers avatar gvissers commented on July 19, 2024

Closing as WONTFIX. Please continue to report map bugs though, our map makers can fix at least some of these issues.

from eternal-lands.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.