Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/fortran/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在WebGL中执行Mipmapping?_Webgl - Fatal编程技术网

如何在WebGL中执行Mipmapping?

如何在WebGL中执行Mipmapping?,webgl,Webgl,我正在学习WebGL并阅读《WebGL编程指南》。然而,这本书省略了纹理贴图的主题。我试图搜索OpenGL ES官方网站,但似乎找不到我问题的答案。在StackOverflow中也没有人问过类似的问题 有人能从头到尾告诉我如何在WebGL中执行纹理mip贴图吗?在WebGL中,您可以手动上载mip贴图-这就是级别参数所在的位置-或者您可以只上载级别0,然后使用它为您生成贴图 生成mip贴图后,使用设置gl.NEAREST\u MIPMAP\u LINEAR(默认值)、gl.NEAREST\u M

我正在学习WebGL并阅读《WebGL编程指南》。然而,这本书省略了纹理贴图的主题。我试图搜索OpenGL ES官方网站,但似乎找不到我问题的答案。在StackOverflow中也没有人问过类似的问题


有人能从头到尾告诉我如何在WebGL中执行纹理mip贴图吗?

在WebGL中,您可以手动上载mip贴图-这就是
级别
参数所在的位置-或者您可以只上载级别0,然后使用它为您生成贴图

生成mip贴图后,使用设置
gl.NEAREST\u MIPMAP\u LINEAR
(默认值)、
gl.NEAREST\u MIPMAP\u NEAREST
gl.LINEAR\u MIPMAP\u NEAREST
gl.LINEAR\u MIPMAP\u LINEAR

然后应使用Mip贴图对该纹理进行采样


我的理解是,它应该像使用
gl.generateMipmap(gl.TEXTURE\u 2D)
和例如
gl.texParameteri(gl.TEXTURE\u 2D,gl.TEXTURE\u MIN\u FILTER,gl.NEAREST\u MIPMAP\u LINEAR)
一样简单,谢谢您的回答。我想我明白了。我会尝试一下,然后给你回复。如果我们要手动加载mipmap,我们必须指定所有mipmap级别直到达到1*1吗?我尝试只使用级别0和级别1,加载两个完全不同的图像,但画布是空白的。0级图像为256*256,而1级图像为128*128。是的,您需要指定所有mipmap级别。例如,您应该知道
gl.generateMipmap
不适用于尺寸不是2的幂的纹理。