GLSL
文章平均质量分 53
康米主义~
这个作者很懒,什么都没留下…
展开
-
[翻译]关于GLSL中std140布局中vec3和float的对齐问题
这里,vec3 a从字节0开始,由于vec3具有16字节的对齐要求,因此vec3 b将从偏移为16的字节开始,vec3 a将在其后面填充额外的4个字节,因为下一个vec3 b不能从字节偏移量12开始,这样会违反其对齐的要求,float c本身有4个字节的对齐要求,所以可以在vec3之后开始,所以字节偏移量为16+12=28.对于vec3来说对其要求是16字节,因此每当声明一个vec3时,在vec3开始之间会填充一些字节,以确保vec3符合对齐要求.原创 2024-01-24 11:56:11 · 523 阅读 · 0 评论 -
RayMarching中的SDF法线计算方法
本文参考自:normals for an SDF - 2015在做RayMarching时,我们获得距离和位置信息后,为了进一步做光照渲染,需要得到物体表面的法线信息。因为我们已经得到了空间中点的位置信息p,以及每个点到最近曲面的距离d,所以可以通过标量函数f§ = d构建一个[标量场( scalar field )]当距离d为一个常量C时,所有距离为C的点p会形成一个表面,这就是这个标量场的等值面,我们要求法线的面就是场景中d=0的面,所以f(p)= 0所表示的等值面就是物体的表面,根据向量场梯度的.原创 2021-08-27 10:45:20 · 1351 阅读 · 0 评论