草庐IT

javascript - 如何使用新的 THREE.TextureLoader 加载多个纹理

如何使用Three.js中的新THREE.TextureLoader加载多个纹理?目前我正在像这样加载我的纹理:vartexture1=THREE.ImageUtils.loadTexture('texture1.jpg');vartexture2=THREE.ImageUtils.loadTexture('texture2.jpg');vartexture3=THREE.ImageUtils.loadTexture('texture3.jpg');vartexture4=THREE.ImageUtils.loadTexture('texture4.jpg');vartexture5=

javascript - 旋转相机时重复纹理严重扭曲/抖动

我最初在gamedev上问过这个问题,但没有一个答案有助于解决问题,我仍然不知道真正的原因是什么。我在常见问题解答中没有看到任何关于在SE中重新发布问题的内容,所以我只能希望这没问题。此外,回想起来,这个问题可能更多地与图形编程有关,而不仅仅是游戏开发。编辑1开始原帖的行为仅适用于WindowsXP和Windows7,浏览器Firefox和Chrome。在Ubuntu上,没有这种失真,而是在旋转相机时纹理“抖动”。当旋转停止时,抖动停止,但纹理可能不在完全正确的位置。编辑1结束编辑3开始该程序已在4台不同的计算机上进行了测试,但在其中任何一台计算机上均未按预期运行。编辑3端我在WebG

javascript - 如何将多个纹理发送到 WebGL 中的片段着色器?

所以在我的代码的javascript部分,这里是实际上将像素数组发送到顶点和片段着色器的片段-但当我到达那些着色器时我只使用1个纹理-无论如何我可以一次发送两个纹理吗?如果是这样,我将如何在编码器的GLSL端“捕获”它们?if(it>0){gl.activeTexture(gl.TEXTURE1);gl.bindTexture(gl.TEXTURE_2D,texture);gl.activeTexture(gl.TEXTURE0);gl.bindFramebuffer(gl.FRAMEBUFFER,FBO2);}else{gl.activeTexture(gl.TEXTURE1);gl

javascript - 使用 WebGL 将两个 Canvas 混合到一个 Canvas 上

我想要做的是将两个Canvas混合到一个Canvas上,用于我正在创建的绘图应用程序。我非常了解Javascript,但我真的不知道从哪里开始使用WebGL,因为这不是一项非常艰巨的任务,我假设如果我不使用它会产生更快的处理速度另一个库,如Three.js或其他类似的库。我已经拥有用户将在其上绘制的Canvas(我们称它们为CanvasA和B),它们都是隐藏的,CanvasC正在显示。我已经完成了主要的绘图应用程序,供用户选择要绘制的图层并在其上绘制,但是我如何才能使用WebGL使用某种混合模式(即:乘法)将两个图层混合在一起)随着用户继续使用WebGL编辑Canvas?起初我尝试关注

javascript - 是否可以使用 WebGL 最大纹理大小?

我正在开发一款分辨率越高越好的应用。但我被WebGLmax_texture_size问题困住了。我创建了一个尺寸正好是这个尺寸的图像(在我的笔记本电脑上是16384x16384),WebGL崩溃说:GL_INVALID_ENUM:glBindFramebuffer:targetwasGL_READ_FRAMEBUFFER_ANGLEGL_INVALID_ENUM:glBindFramebuffer:targetwasGL_READ_FRAMEBUFFER_ANGLEWebGL:CONTEXT_LOST_WEBGL:loseContext:contextlost当我尝试使用最大值的0.7

javascript - 如何水平翻转 Three.js 纹理

我正在制作360度查看器,因此纹理位于圆柱体内。问题是它们水平倒置。我知道texture.flipY但我还没有在thesource上找到texture.flipX.那么如何直接在代码中水平或沿x轴翻转纹理?(不使用图像编辑器) 最佳答案 要水平翻转纹理,您可以执行以下操作:texture.wrapS=THREE.RepeatWrapping;texture.repeat.x=-1;three.jsr.147 关于javascript-如何水平翻转Three.js纹理,我们在StackOv

javascript - 三个 JS 透明度与 ShaderMaterial

我正在绘制两个相邻的几何体并让它们旋转。问题是第一个绘制的阻碍了第二个,透明度应该生效。这两个对象应该具有相同的透明度,无论谁先被绘制。这就是混合打开而深度测试关闭的原因。以下是图片:两个几何体都是使用THREE.ShaderMaterial的点云,如下所示:varshaderMaterial=newTHREE.ShaderMaterial({uniforms:uniforms,attributes:attributes,vertexShader:document.getElementById('vertexshader').textContent,fragmentShader:doc

javascript - three.js 改变 Material 的纹理

我正在three.js中的网格上设置纹理,当它加载时它看起来也是我想要的:texture=THREE.ImageUtils.loadTexture("textures/hash.png");texture.needsUpdate=true;uniforms={color:{type:"c",value:newTHREE.Color(0xffffff)},texture:{type:"t",value:texture},},vertexShader="varyingvec2vUv;voidmain(){vUv=uv;gl_Position=projectionMatrix*modelVi

javascript - 如果不使用像 three.js 这样的库,我将如何在 webgl 中进行环境反射?

我正在尝试弄清楚如何将环境映射到对象上。这是设置:如何让茶壶的表面反射(reflect)周围环境?所以我的意思是,茶壶不应是那种灰色阴影,它的表面应该反射(reflect)它的环境,所以它应该将棋盘映射到它的表面上。这是我试图完成的示例,但它使用了Three.js我想自己做(这是为了上课)。http://aerotwist.com/tutorials/create-your-own-environment-maps/demo/这有意义吗?我将如何开始?跟进我在完成家庭作业后回答了这个问题:https://stackoverflow.com/a/10093646/196921.请参阅链接

javascript - 创建一个平面,在两侧添加纹理并在其一侧旋转对象

我正在尝试创建一条具有重复纹理的长廊。如何添加重复纹理并以直Angular旋转对象(在本例中为平面)以创建走廊墙壁和天花板?vartexture,material,plane;texture=THREE.ImageUtils.loadTexture("../img/texture.jpg");texture.wrapT=THREE.RepeatWrapping;//Thisdoesn'tseemtowork;material=newTHREE.MeshLambertMaterial({map:texture});plane=newTHREE.Mesh(newTHREE.PlaneGeo