我在计算顶点的屏幕坐标时遇到问题。这不是一个特别的webgl问题,更像是一般的3d图形问题。
我使用的矩阵变换序列是:
result_vec4 = perspective_matrix * camera_matrix * model_matrix * vertex_coords_vec4
model_matrix是将其局部坐标系中的顶点转换为全局场景坐标系。 所以我的理解是最终的result_vec4在剪辑空间?然后应该在[-1,1]范围内。这不是我得到的...... result_vec4最终只包含一些标准的坐标值,而不是与顶点的正确屏幕位置相对应。
有没有人对这里的问题有什么想法? 非常感谢你的任何想法。
答案 0 :(得分:1)
要进入剪辑空间,您需要使用以下方式在超平面result_vec4
上投射w=1
:
result_vec4 /= result_vec4.w
通过应用此透视图,result_vec4.xyz
将位于[-1,1]。