WebGL
文章平均质量分 74
hpugisers
每天进步一点点,美滋滋
展开
-
GEngine一个基于WebGPU的渲染引擎
2019年时候就有写一个渲染引擎想法,一直到现在才真正意义上算给实现了当初的想法,写了好几个月了和小伙伴这才有个初版(虽然里面还有一堆bug哈,没时间改啊)。说在前面GEngine借鉴了其他渲染引擎思路与代码(毕竟要站在巨人肩膀上,别在那说你就是抄别人代码,我就抄了咋了气死你,有本事你也抄,不接受反驳),你要让我说GEngine的优势是啥?原创 2023-06-09 16:38:49 · 1669 阅读 · 0 评论 -
如何保证切线空间矩阵正确
针对复杂模型时,切线往往是经过许多顶点计算的,这样就可以得到一个平均值来获得平滑的结果,这样会造成一个问题,那就是T、B、N三个向量可能不会相互垂直了,也就是TBN矩阵不是正交的了。 针对这一问题,我们可以使用格拉姆施密特方法来重新正交化TBN矩阵,在顶点着色器中这么做: vec3 T = normalize(vec3(model * vec4(aTangent, 0.0))); vec3 N = normalize(vec3(model * vec4(aNormal, 0.0))); // 使用N正交原创 2020-10-08 15:42:02 · 747 阅读 · 0 评论 -
关于对数深度的一些知识
这些知识忘了在哪粘贴的,希望原作者看到可以留言 OpenGL渲染时,顶点着色器输出的w值为是 W = -Z; 而深度值是 D = Z * ( n + f ) / ( n - f ) + 2.0 * f * n / (n-f) 顶点着色器中的值通过除以w转换为归一化的设备坐标,因此深度值变成了: Dndc=D / W = D / -Z = -D / Z = (f+n)/(f-n) + 2.0 *f*n/(f-n) / Z; 让 a = 2.0 *f*n/(f-n) ; b = (f+翻译 2020-06-18 20:41:23 · 1148 阅读 · 0 评论 -
关于WebGL报错l-value required (can't modify a uniform "color")
报错原因: uniform只读,不可修改 解决方式,可以声明vec3、float进行替代赋值原创 2020-04-20 19:02:35 · 1052 阅读 · 1 评论 -
WebGL关于着色器传值的几种方式总结
最近两周都在看WebGL,至于为什么要看WebGL???我是想看Cesium源码,发现要想看懂Cesium的源码。需要WebGL知识储备,因为Cesium是基于WebGL开发的三维api封装,但是如果想完全弄懂Cesium,仅靠学习WebGL是无法做到的,需要了解OpenGL、计算机图形学、数字地球等。关于webgis发展认为未来三维GIS应该比较火,二维方面的发展已经相当成熟了,虽然三维现在发...原创 2019-07-31 20:36:13 · 1060 阅读 · 1 评论