Hi
I'm trying to create simple ground generator for my game but I have problem with shading of generated geometries.
I this code I have used two methods (ImmediateGeometry and MeshInstance with SurfaceTool) and in both situation problem looks the same. Third object on screen is MeshInstance with "New PlaneMesh" and it's working ok. All of the objects (except blue ground) have the same shader.
This "procedural" meshes are gray and they not casting any shadows. Why, what can I do with that?
Best!
func test():
randomize()
# ImmediateGeometry
var im = scene.get_node('ImmediateGeometry')
im.clear()
im.begin(Mesh.PRIMITIVE_TRIANGLE_STRIP, null)
for x_num in 10:
var x = x_num*2
var v1 = Vector3(0+x, 0, rand_range(-0.25, 0.25))
var v3 = Vector3(1+x, 2, rand_range(-0.25, 0.25))
im.add_vertex(v1)
im.add_vertex(v3)
im.set_normal(Vector3(0, 0, 1))
im.set_color(Color(1, 1, 1))
im.end()
# MeshInstance - bb
var bb = scene.get_node('bb')
var surf = SurfaceTool.new()
var msh = Mesh.new()
surf.begin(Mesh.PRIMITIVE_TRIANGLE_STRIP)
for x_num in 10:
var x = x_num*2
var v1 = Vector3(0+x, 0, rand_range(-0.25, 0.25))
var v3 = Vector3(1+x, 2, rand_range(-0.25, 0.25))
surf.add_vertex(v1)
surf.add_vertex(v3)
surf.generate_normals()
surf.commit(msh)
bb.set_mesh(msh)
