Currently, if you want to make a triangle part to connect to 3 points, you have to do some nice math to make two part wedges connect to each other to form that triangle (unless it’s a right triangle, then you just need one.) Currently, this is a decent solution, but can be a horrible one when taking in account it constantly updating, and many of them.
Take for example, a verlet cloth. That thing is so laggy and can’t be used in practical gameplay or maps. It’s laggy because it’s trying to update so many triangles to the right position and size.
With the 3D Triangle “Part,” all it is is an object with 3 points, a color, (maybe) a texture, and possibly come collision if enabled. It only has two possible sides of collision.
I’m hoping with an addition of something like this, we can build things like verlet cloths and add them to a game without worrying about lag or people shutting down because of them.
This thing should be very light weight and only for advanced users who know how to do things with such triangles. I should be able to update 1000s of them without worrying about lag (or at least a few hundreds. :p)
Also, with something like this, developers could add more dynamic parts. We could even do something like a “blob” or a slime and make it look like an actual slime/blob. We could do some nice “powerz” effects also. Not to mention cloths and the like.
Thoughts? Suggestions? How would you use it if something like this were added? Is this even a good idea? Why or why not?
I think it’s too low level, I’d rather see mesh manipulation and (further on in the future) cloth simulation as high-level engine features, i.e. based on the skeleton of some mesh rather than loose vertices.
They don’t have to add in every use case, they just need to add in the ones they deem important enough. It’s not their objective to cover as many use cases as they possibly can. I just don’t see the appeal of this over mesh skeletons that are manipulated through animations, or bump maps for meshes, for example.
Terrain, deformation, cloth sim, soft body physics, grass and tree effects… These are just the ones that I could come up on the spot. There are many other use cases.
Yeah and for all of them I think they are much better suited as high-level engine features rather than giving people the ability to deform the vertices of loose triangles (not even in a mesh, see suggestion), this is the point I’m trying to make. If you’re going for performance I really do not think you’ll want to do real-time vertex manipulation directly from Lua, the bridge between Lua and internal code would be too much of a bottleneck for that. Vertex manipulation is much better done through some kind of shader as well…
If this is accurate, then I couldn’t agree more. The whole purpose of this idea is mainly to have higher performance while letting us control triangles. If I can’t control at least 250 triangles without fps drop, then there is not TOO much of a point for this anymore. Of course, this would still be useful for things like clothes, as you don’t need more than 100 (in most cases.)
I don’t think this is accurate though. I’m pretty sure you can simulate over 10 clothes without fps drops, until you render them, of course.
You see, even with 2 wedges, it’s not resource intensive to move a 100 triangles when optimized enough. It’s resource intensive to do the positional math. I know because I made a cloth sim using this stuff. And it’s not like those things that I have mentioned get changed all the time (except for cloth sim and soft body) so what you said about bottlenecking is irrelevant as I’m planning to get the performance increase from having less triangles not manipulating them. Even tho that manipulating a single triangle would still be more efficient so it’s a win win.
Regarding the proposal:
I don’t think this proposal is the way to tackle this issue. So I wouldn’t support it. Scripting vert positions in lua to do something like cloth physics isn’t the right way to go about things. I implemented something like this for a hack week demo (that I never presented) and it was really gross. Further experimentation needs to be done as well as looking at effective ways other engines such as Unity and Unreal deal with this.
Regarding the thread:
Please please please post in a subsection of feature requests, not just the broad category. This is very much a “Client Feature” and should be in that category. You can edit the OP and move the thread.
Sorry about the thread subsection. And thanks for your input. I agree with what you said, and I also expected an answer as such. I only posted this to see if other people are interested in an idea like this.
A bit unrelated but I think ROBLOX could at least make a RightTetrahedron part type (CornerWedge minus one vertex). In terms of solving triangle-based 3D objects, like terrain, things would be much easier in a similar sense as the OP’s cloth concept.