Also, regarding bounds for culling, is there plans to provide API for this?
It seems meshs internally have a “Scale” that is not exposed anywhere?
How are you expected to create a mesh from scratch and have it cull correctly - it seems to me the only way currently is to size the host mesh to the size of the mesh and use normalized position data?
I later found out that this “throttling” was not throttling, but instead a precision issue caused by math.noise. I guess the numbers os.clock spits out are too big for math.noise to give precise results. It made it seem exactly as if my scrolling noise mesh were updating infrequently, it was an easy fix ofc. My bad lol.
I messed with it a bit more, and it looks like I have to set my normals after tris are added, because like you said, adding tris will overwrite existing normals. This is why it seemed my normals weren’t being updated. This seems a bit awkward and I wonder if it might become an issue in some fringe scenarios. What if I want to edit geometry without affecting surrounding normals? Wouldn’t I have to go back and set them back? Something along the lines of vertex smoothing groups might work better. I also wonder, would this system add any significant overhead in cases where custom normals are heavily used?
We still need a good way to texture this without making each type of block into its own material and separate mesh. The extra draw calls aren’t too great for lower-end devices, and I’m gonna assume making all the extra mesh instances ought to add a decent bit of performance cost. Using a texture atlas to circumvent this presents some issues for a couple reasons. Roblox’s lack of nearest-neighbor filtering (for pixel art), the 1024 resolution limit, and the inability to edit mipmaps. I’d love to see this stuff addressed, and maybe they can even add texture arrays, which would allow us to use textured greedy meshing with a single draw call.
Lighting is also a huge concern. I guess you could do lighting using ambient light + vertex colors to achieve vertex lighting like minecraft has, but all other options are full of issues. Maybe once roblox improves their voxel lighting systems and their light probes we can get some decent results. Even after all that, we have to hope that creating custom collisions and generating a meshpart (required for roblox’s voxel lighting) will be fast enough.
Yes, I reuse vertices if they share the same material and that is the reason why I use solid colors on the texture (with some bleed since I was sloppy with the UV placements).
Tried to come up with a way to unwrap the UV but don’t think it’s possible, I would guess that games such as Minecraft disregard the UV data for blocks and use a shader to box project since that would have been a much easier and performant solution.
local AssetService = game:GetService("AssetService")
local newMesh = AssetService:CreateEditableMeshFromPartAsync(script.Parent)
newMesh.Parent = script.Parent
local VertexTest = newMesh:GetVertices()
for i, v in VertexTest do
local LocalPosition = script.Parent.CFrame:ToObjectSpace(CFrame.new(newMesh:GetPosition(v))).Position
local WorldPosition = script.Parent.CFrame:ToWorldSpace(CFrame.new(newMesh:GetPosition(v))).Position
print('Local: ' .. LocalPosition)
print('World: ' .. WorldPosition)
end
Emphasizing something mentioned earlier in the thread. Textures are not showing on EditableMesh’s Meshpart unless you set the MeshId of the Meshpart (which should be unnecessary since you won’t be using that meshid anyways). Seems like a bug.
Can a method be added to EditableImage for drawing text? This would be great for making static signs, and would allow not having to use SurfaceGuis for a static image.
Will there be support for a shoe-in kind of “UV masking?” There’s a very high value proposition here for being able to mask a contrast (brightness) texture on top of a color texture
Hey, so it’s come to my attention that one of the users of my plugin has a mesh that crashes whenever it’s loaded into an EditableMesh using :CreateEditableMeshAsync()
Here’s the file he gave me: Unionn.rbxm (3.9 KB)
Along with the assetid of the mesh: rbxassetid://14026615641
A possible issue might be the way he made the mesh. If he was trying to make it “smooth” and blender, so he multiplied the amount of vertecis over and over again, until Roblox is unable to load so much without a crash. I am not sure, just a guess.
I am curious about the “asset uploading and moderation” portion of Editable objects and a few other ideas.
How will they function in scenarios where you are given tools to customize your own character, car, or objects, and then use them in-game? Will they have to be pending for automatic bot moderation for a few minutes before they may be seen in-game?
Will you be able to publish (in a live game) and save the assetid to the datastore so that it may be loaded later on and further edited, without having to store the mesh data in the files?
Will there be something similar for terrain such that terrain can be saved and loaded in a similar way?
Are there any plans for support of SVG-like editables for infinite resolution UI or vector art?
Is there any plan to be able to use one editable object and propogate it to multiple areas through instancing and adornees/references? i.e. reusing the same editableimage or mesh multiple times, and able to edit any one of them. I’m assuming that Packages may be useful in this case, but it would not work for real-time manipulations. There is also the potential of using an objects UUID to generate a reference to it that can be placed in the Content field for image and mesh objects, and being able to get and set from there, or to have a new dedicated property. A good example of uses for this feature would be to design an RPG Maker sort of game where the user can draw sprites and update them in realtime, or a procedurally generated object that only needs to be computed and drawn “once”, regardless of however many copies are placed.
Dude, that’s not all!
We should NEVER forget about “corrupt” developers!!! Just the EditableImage on it’s one is making it possible to technically play entire videos on it. I will not mention how exactly it might be used by these developers. EditableMeshes can be used for creating… things. And both combined will be a pretty dangerous output.
I hate to say that, but the power offered by editable meshes and images is too much for the Roblox community yet. As long as there won’t be a proper way of moderation of these assets Roblox shouldn’t make editable meshes and images visible in experiences.
If a developer would do something inapporiate then he should just be banned.
There are already building games where users can make innapporiate things, so EditableMesh won’t make it worse
I want to remind you that creating alternate accounts is free. Other then that EditableMeshes do make it worse. In fact you can create characters, in any shape or form you want them to look like.
Roblox is making Alt account detection tho. You’re kinda right about being able to do any shape, but i don’t think users would waste their time making it.