Despite the optimization benefits, I’ve personally always found Roblox terrain textures very unoriginal, so I generally don’t use it.
I might use it for water sometimes but that’s about it.
I guess I should clarify what I meant by cframing.
It’s fairly easy to cframe terrain. Using Terrain:FillBlock(cframe,size,material)
and Terrain:FillBall(position,radius,material)
you can place chunks of terrain anywhere.
If you’re doing a proof of concept, then working out the math would be really cool.
If you’re trying to build a game however, I recommend going the easier rout of taking an island made out of Parts and converting said island into terrain with a function similar to this:
function fill(part,material)
if part.Shape == 'Ball' then
Terrain:FillBall(part.Position,part.Size.Y/2,Enum.Material[material])
else
Terrain:FillBlock(part.CFrame,part.Size,Enum.Material[material])
end
end
function convertIslandToTerrain(model)
for i,v in pairs(model:GetChildren()) do
if v.Name == 'Grass' then
Terrain:FillBlock(v.CFrame,v.Size,Enum.Material.Grass)
v:Destroy()
elseif v.Name == 'Rock' then
Terrain:FillBlock(v.CFrame,v.Size,Enum.Material.Rock)
v:Destroy()
end
end
end
From personal experience, unless you’re really into the math itself, the end product will be very similar.
This is not to say that your islands can not be random.
You can still have lots of randomness if you take a bunch of premade islands and mixed them together.
Again, the product will be very similar.
That’s my personal opinion on the matter.
Hope this helps ¯\(ツ)/¯