float double数精度,自己原来也不怎么在乎,但这大半年下来竟然发现屡屡在此问题上栽跟头。
总结下来写渲染程序:
1.在CPU端尽量设置为double类型数据计算各种变换矩阵,最终传给GPU时再弄为float。
2.如果数值偏差太大,建议先转换为局部坐标系进行各种计算,最终转换为最后的坐标系。
3.顶点着色器中设置为高精度的high,比medium 降低的性能真的很小,但效果改善很不错。
4.有时向着色器中传入时间变量,会随着程序的开启越来越大,此时要注意精度,采取必要的措施,如取余等方式。