0

在渲染 equirectangular 编码的 360 度纹理时,通常会有类似的查找

u = atan(x,z)
v = acos(y) 

equirectangular 纹理已经非常预过滤。仅仅打开 mipmaping 是行不通的。u不连续,纹理本身在uv. 并且使用 2x2 框下采样创建 mipmap 也不适合 equirectangular。

但是假设 miplevel 的 2x2 框和硬件 mipmap 查找,是否有一种计算 lod 或梯度的好方法有意义?

仅使用 dFdx(v) 和 dFdy(v) 类型的作品来处理小视口。但一定有更好的方法吗?

4

1 回答 1

1

您可以使用函数生成 mipmapglGenerateTextureMipmap()并使用texture(tex, uv)查找函数。它已经完成了这项工作。

但是,您应该对uv坐标进行归一化,以使它们在[0,1]范围内:

u = atan(x,z)
v = acos(y)
uv = uv/6.283185 + .5
于 2017-04-27T08:55:02.507 回答