fix(render): 方格垂直面被背面剔除(立面透明空洞/闪烁)+ 鼠标左右反转
- mesh.faceDef 六面绕序铁律:旧定义只有顶面是窗口空间顺时针 (FrontFace=CW 的正面),底/东/西/南/北五面是逆时针被全部剔除—— 世界只剩顶面、立面透明、移动时面闪烁(数值投影验证 5 面 area>0 被剔) - 覆盖层 cubeFaces(裂纹盒/手持方块)同步反转 - 鼠标右移应右转:yaw=0 朝 -Z,右转朝 +X 需 yaw 减小,dyaw 取反 (原实现 dyaw += dx 左右颠倒)
This commit is contained in:
@@ -14,14 +14,15 @@ import (
|
||||
"github.com/go-gl/gl/v3.3-core/gl"
|
||||
)
|
||||
|
||||
// cubeFaces 单位立方体 6 面角顺序(与 mesh.faceDef 一致,CW 绕序为正面)。
|
||||
// cubeFaces 单位立方体 6 面角顺序(与 mesh.faceDef 一致,
|
||||
// 窗口空间 CW 绕序为 FrontFace(CW) 的正面)。
|
||||
var cubeFaces = [6][4][3]float32{
|
||||
{{0, 1, 0}, {1, 1, 0}, {1, 1, 1}, {0, 1, 1}}, // 顶
|
||||
{{0, 0, 1}, {1, 0, 1}, {1, 0, 0}, {0, 0, 0}}, // 底
|
||||
{{1, 0, 0}, {1, 0, 1}, {1, 1, 1}, {1, 1, 0}}, // 东(+x)
|
||||
{{0, 0, 1}, {0, 0, 0}, {0, 1, 0}, {0, 1, 1}}, // 西(-x)
|
||||
{{1, 0, 1}, {0, 0, 1}, {0, 1, 1}, {1, 1, 1}}, // 南(+z)
|
||||
{{0, 0, 0}, {1, 0, 0}, {1, 1, 0}, {0, 1, 0}}, // 北(-z)
|
||||
{{0, 0, 0}, {1, 0, 0}, {1, 0, 1}, {0, 0, 1}}, // 底(反向)
|
||||
{{1, 1, 0}, {1, 1, 1}, {1, 0, 1}, {1, 0, 0}}, // 东(+x)(反向)
|
||||
{{0, 1, 1}, {0, 1, 0}, {0, 0, 0}, {0, 0, 1}}, // 西(-x)(反向)
|
||||
{{1, 1, 1}, {0, 1, 1}, {0, 0, 1}, {1, 0, 1}}, // 南(+z)(反向)
|
||||
{{0, 1, 0}, {1, 1, 0}, {1, 0, 0}, {0, 0, 0}}, // 北(-z)(反向)
|
||||
}
|
||||
|
||||
// cubeVerts 按六面 UV 构建单位立方体顶点(mesh.Vertex 格式:pos+uv+light 字节,
|
||||
|
||||
Reference in New Issue
Block a user