Webgl纹理图集

Pét*_*ván 5 opengl-es glsl webgl

我想请求有关制作WEBGL引擎的帮助.我被困在纹理地图集上.有一个纹理,包含2-2张图片,我将其左上角绘制到一个顶点(纹理坐标如下:0-0.5 0-0.5).

这是正常的,虽然当我从远处看顶点时,所有这些都模糊在一起,并给出奇怪的looing颜色.我认为它是由于我使用自动生成的Mipmap,当我从远处看它时,纹理单元使用1x1 Mipmap纹理,其中4个纹理一起模糊到一个像素.我被建议使用Mipmap自己的生成器,具有最大级别设置(GL_TEXTURE_MAX_LEVEL),尽管Webgl不支持它.我还建议在Fragment Shader中使用"textureLod"函数,但Webgl只允许我在顶点着色器中使用它.

唯一的解决方案似乎是Bias,这个值可以在Fragment Shader"texture2D"函数的第3个参数中给出,但是有了这个,我只能设置Mipmap LOD的偏移量,而不是实际值.

我的想法是使用深度值(距离相机的距离)来移动偏移(增加偏差,因此它将变得越来越负),因此这可以确保它不会在更远的距离使用最后的Mipmap级别,但要始终从更高分辨率的Mipmap级别获取样本.这个问题,我必须计算给定顶点到摄像机的角度,因为LOD值取决于此.

所以Bias = Depth + Angle的某种组合.我想请帮忙计算一下.如果有人对Webgl纹理地图集有任何想法,我很乐意使用它们.