Calculer l'élévation pour le triangle et non les points (en fonction du center3d) - render 3d cassé

pull/18/head
Valentin Stark 3 years ago
parent 93e1038a81
commit 1de23642e2
  1. 4
      ui/map/map.gd
  2. 6
      world/World.gd
  3. 5
      world/game.gd

@ -12,9 +12,9 @@ func heightmap():
colors.add_point(0.25, Color("#fbf8b0")) # yellow colors.add_point(0.25, Color("#fbf8b0")) # yellow
colors.add_point(0, Color("#89cfa5")) # green colors.add_point(0, Color("#89cfa5")) # green
colors.add_point(-0.999, Color("#5e4fa2")) # blue colors.add_point(-0.999, Color("#5e4fa2")) # blue
var color = colors.interpolate(min(triangle.get_data("elevation"), 0.999)) var color = colors.interpolate(min(triangle.get_elevation(), 0.999))
if triangle.get_data("ocean"): if triangle.get_data("ocean"):
var factor = pow((triangle.get_data("elevation")+1), 10) / 5.0 var factor = pow((triangle.get_elevation()+1), 10) / 5.0
color = Color("#5e4fa2") + Color(factor, factor, factor, 0.0) color = Color("#5e4fa2") + Color(factor, factor, factor, 0.0)
if triangle.polygon().size() > 2: if triangle.polygon().size() > 2:
draw_polygon(triangle.polygon(), PoolColorArray([color])) draw_polygon(triangle.polygon(), PoolColorArray([color]))

@ -14,13 +14,13 @@ func draw_world():
st.begin(Mesh.PRIMITIVE_TRIANGLES) st.begin(Mesh.PRIMITIVE_TRIANGLES)
# st.add_smooth_group(true) # st.add_smooth_group(true)
for triangle in terrain.get_triangles(): for triangle in terrain.get_triangles():
for point in triangle.points(): # for point in triangle.points():
var factor = Vector3(1, 24*5, 1) var factor = Vector3(1, 24*5, 1)
# if point.get_data("river") and i == 0: # if point.get_data("river") and i == 0:
# factor.y -= 0 # factor.y -= 0
# if i == 1: # if i == 1:
# factor.y -= 2.0 # factor.y -= 2.0
st.add_vertex(point.point3d() * factor) st.add_vertex(triangle.center3d() * factor)
st.generate_normals() st.generate_normals()
# st.generate_tangents() # st.generate_tangents()

@ -59,7 +59,8 @@ func init_data():
if point.get_data("river"): if point.get_data("river"):
set_river_path(point) set_river_path(point)
for triangle in terrain.get_triangles(): for triangle in terrain.get_triangles():
triangle.set_data("elevation", triangle_find_elevation(triangle)) triangle.set_elevation(point_find_elevation(triangle.center2d()))
# triangle.set_data("elevation", triangle_find_elevation(triangle))
triangle.set_data("water", triangle_is_water(triangle)) triangle.set_data("water", triangle_is_water(triangle))
triangle.set_data("ocean", false) triangle.set_data("ocean", false)
# TODO #1 : Get triangles around point # TODO #1 : Get triangles around point
@ -177,7 +178,7 @@ func triangle_find_elevation(triangle):
return elevation return elevation
func triangle_is_water(triangle): func triangle_is_water(triangle):
if triangle.get_data("elevation") <= 0: if triangle.get_elevation() <= 0:
return true return true
return false return false

Loading…
Cancel
Save