Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/three.js/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
Javascript 三像素精确纹理。相机或画布设置错误。二维_Javascript_Three.js_Textures_Webgl - Fatal编程技术网

Javascript 三像素精确纹理。相机或画布设置错误。二维

Javascript 三像素精确纹理。相机或画布设置错误。二维,javascript,three.js,textures,webgl,Javascript,Three.js,Textures,Webgl,在使用three.js时,webgl 2D空间中的像素精确纹理存在问题。 我第一次解决了这个问题,将顶点移动了半个像素,这样我的纹理的像素现在就精确到位了。在这里找到它: 我的第一次尝试是在覆盖整个浏览器窗口的100%宽度和高度的画布上进行的。 摄影机设置如下所示: camera = new THREE.OrthographicCamera( window.innerWidth / - 2, window.innerWidth / 2, window.innerHeight / 2, windo

在使用three.js时,webgl 2D空间中的像素精确纹理存在问题。 我第一次解决了这个问题,将顶点移动了半个像素,这样我的纹理的像素现在就精确到位了。在这里找到它:

我的第一次尝试是在覆盖整个浏览器窗口的100%宽度和高度的画布上进行的。 摄影机设置如下所示:

camera = new THREE.OrthographicCamera( window.innerWidth / - 2, window.innerWidth / 2, window.innerHeight / 2, window.innerHeight / - 2, - 500, 1000 );
现在我正在尝试将相机调整为特殊尺寸。例如,1000 x 1000像素。 为此,我更改了如下照相机设置:
camera=new THREE.orthographicalcamera(-500500500,-5001000)

使用此设置,我再次获得模糊而非像素精确的纹理。 我的计划是webgl画布的行为类似于网页中某个地方静态画布中的图像。有人能帮我设置摄像头吗?我试图在小提琴中设置所有东西,但在从外部服务器加载纹理时遇到了问题。不管怎样,也许你可以看看:


因此,我的问题是,如何确保画布和相机设置正确,不会产生模糊的纹理。

除了您的问题,您的用例是什么?看起来你想在不移动摄像机或场景的情况下做一些2D的事情,那么为什么要使用3D场景和摄像机呢?如果你想提供一个跨越整个画布的纹理,可以看看全屏着色器?我不确定,但这可能是一个更好的方式?我不想使用全屏纹理。我喜欢使用具有不同纹理的不同对象,并将它们组合在一起。更像是一个2d游戏,但没有摄像头移动。下面是显示我的问题的截图,只有十字架是我想要准确的纹理。这里是它的样子:这里是它不应该的样子:也许我再描述一遍。在静态大小的画布中,我无法以正确的方式将相机居中。例如,我的画布是1000px*1000px。然后我会像这样对中我的相机:相机=新的三个。正交相机(-500500500,-500,-5001000);但这不起作用,我再次得到一个稍微模糊的纹理。有人能告诉我一种方法使照相机准确居中吗?我是否为画布使用可除值?我是如何做到这一点的?当我对画布使用100%的值时,为什么它会起作用?