Skip to content

Commit

Permalink
Client: Create a new debug scene for surface normals
Browse files Browse the repository at this point in the history
I made this primarily to debug the normals visualization. Might as well keep it, in case the winding order must change again.
  • Loading branch information
rdw-software committed Jan 28, 2024
1 parent dff72db commit 8828d17
Showing 1 changed file with 51 additions and 0 deletions.
51 changes: 51 additions & 0 deletions Core/NativeClient/DebugDraw/Scenes/walls.lua
Original file line number Diff line number Diff line change
@@ -0,0 +1,51 @@
local Mesh = require("Core.NativeClient.WebGPU.Mesh")
local Plane = require("Core.NativeClient.DebugDraw.Plane")
local NormalsVisualization = require("Core.NativeClient.DebugDraw.NormalsVisualization")
local WorldAxis = require("Core.NativeClient.DebugDraw.WorldAxis")

local worldAxesVisualizationMesh = WorldAxis()

local groundMesh = Plane({ dimensions = { x = 4, z = 4 }, translation = { x = 0, y = 0, z = 0 } })

local function createWallSurfaceEast()
local wallEast = Mesh("WallEast")

wallEast.vertexPositions = { 2, 0, -2, 2, 2, -2, 2, 2, 2, 2, 0, 2 }
wallEast.triangleConnections = { 0, 1, 2, 0, 2, 3 }
wallEast.vertexColors = { 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 1 }
wallEast.surfaceNormals = { -1, 0, 0, -1, 0, 0, -1, 0, 0, -1, 0, 0 }
wallEast.diffuseTextureCoords = { 0, 0, 0, 0, 0, 0, 0, 0 }

return wallEast
end

local function createWallSurfaceNorth()
local wallNorth = Mesh("WallNorth")

wallNorth.vertexPositions = { -2, -2, -2, -2, 0, -2, 2, 0, -2, 2, -2, -2 }
wallNorth.triangleConnections = { 0, 1, 2, 0, 2, 3 }
wallNorth.vertexColors = { 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 1 }
wallNorth.surfaceNormals = { 0, 0, -1, 0, 0, -1, 0, 0, -1, 0, 0, -1 }
wallNorth.diffuseTextureCoords = { 0, 0, 0, 0, 0, 0, 0, 0 }

return wallNorth
end

local wallEast = createWallSurfaceEast()
local normalsVisualizationEast = NormalsVisualization(wallEast)
local wallNorth = createWallSurfaceNorth()
local normalsVisualizationNorth = NormalsVisualization(wallNorth)

local scene = {
displayName = "Cube3D (demo)",
meshes = {
worldAxesVisualizationMesh,
groundMesh,
wallEast,
wallNorth,
normalsVisualizationEast,
normalsVisualizationNorth,
},
}

return scene

0 comments on commit 8828d17

Please sign in to comment.