ive got these rocks made for a terrain in Blender, first i exported the terrain as a .glb from Godot, then applied a geometry node setup to discard geometry at less than threshold slope. I took the geometry and subdivided a couple of times then applied thickness then a displace modifier with the height texture of the terrain rock material, the UVs are a bit wrong, but im just learning this art.
So once the textures were applied i have a large mesh that slows down the game and rocks that look too low res ā¦. Im thinking there must a good way of making them look good and keeping the old textures for mid distance.
You can click the arrow next to this little icon in the top right of the viewport, enable āStatisticsā and then see how many polygons your model contains in the upper left when you have your rock formations selected.
It could be that the subdividing generate a lot of unnecessary extra geometry that could be the root of your slowdown. I think, with rock formations like these, you can just apply a decimate modifier if you want to reduce the amount of geometry. I donāt think you need much more than 50k-75k triangles for those rocks, but that also depends on how much more rocks there are outside of the screenshot viewports.
You could also add in a few loose extra big boulders in certain areas. Thereās an addon for generating rocks I believe.
Texture wise, I think it looks pretty good already in the seconds screenshot. But perhaps a bit of ambient occlusion could help in defining the rocks a bit more, and if you have multiple rock textures, I would mix those using some noise and project the textures using triplanar mapping, although the UVās donāt look half bad currently. Itās just that UV unwrapping is already a pain, and with organic formations, it gets even harder.
Regarding keeping these textures for mid distance, Iām not entirely sure how thatād work with Godot⦠you could do it manually by calculating the distance from the camera to the fragment, but thereās no built-in functionality for that. Perhaps the LOD system but thatās pretty much automatic and I think that only changes geometry, not textures.
But to be honest, Iād have to experiment with this myself to find ways to make rocks look good, I havenāt done a lot with that yet.
Edit: the rock generator is included with the āExtra Mesh Objectsā extension that you can download from within Blender (Edit > Preferences > Get Extensions)
Yeah thanks cheers for the tips. I do use the decimate modifier a lot especially for rocks, and yeah i have already checked with the statistics displayed. The decimate does a lot to preserve the shape of the rocks while cutting down on polygons.
I think i need to cut the geometry into chunks too, probably just allow the godot renderer to clip some.
But most importantly the area around the edges where its extruded from thickness has degenerate texture coordinates ⦠i think it was almost impossible to select if the thickness was applied last. So perhaps a geometry node setup for that selection too.
The main point i am trying to explain is that perhaps a higher detail triplanar texture could be applied to the rocks, then maybe layered textures for noise and perhaps an edge mask ⦠i am looking for tricks like splatmapping that can easily look better than an 8k equivalent texture.
For the distance effect i was just trying to blend the texture it already has ⦠basically trying to upscale by adding detail with another map close up, and adding texture variation to reduce repetitiveness.
Generate a normal map with high poly geometry in Blender, etc.
Export low level geometry version to Godot.
Use the high res normal map for the lighting part of your per pixel lighting.
Get some bumpmapping magic as we use to call the technique back in the 00s
Cheers, cool project, keep on space devinā!