【问题标题】:how can i use none repeat tiling texture in three.js我如何在three.js中使用无重复平铺纹理
【发布时间】:2015-04-03 12:48:13
【问题描述】:

我正在制作像 krpano 这样的全景图。我想知道如何使用小图像作为一个立方体面的纹理? http://stemkoski.github.io/Three.js/Skybox.html 此示例使用 6 张图片作为立方体的纹理。我可以使用许多小图块作为立方体面的每个纹理吗?

【问题讨论】:

  • Krpano 似乎将立方体面渲染为小块。也许它使用多个网格作为一个立方体面。
  • 是的,您可以为立方体的每个面使用不同的纹理
  • 此外,在球体几何的情况下,您可以使用不同的 pi 和 theta 值构造小球体,对它们进行纹理化并排列它们以形成一个完整的球体。
  • 其实我有点好奇,你是中国人吗?但我是。如果是的话,我们可以用中文交谈还是用qq或其他方式交谈?我想也许我们正在做同样的事情并且我确实有一些事情要和你分享。
  • 现在我找到了问题的答案。我的意思是使用 4 张图片来纹理一个立方体面,虽然它有一些问题。但我想我会很快解决它。一句话我更改了立方体几何体的顶点和面以及 faceVertexUvs。也许我会在完成后发布它。

标签: three.js tile


【解决方案1】:

我认为答案是制作一个新的几何体,设置您自己的顶点、满足您需求的面,然后设置 faceVertexUvs 和 materialIndex 以使其具有良好的纹理。

  vertices.forEach(function(v){
geom.vertices.push(new THREE.Vector3(v[0],v[1],v[2]));});
 faces.forEach(function(v){
geom.faces.push( new THREE.Face3( v[0],v[1],v[2] ) );});

我这里有一个例子:multipleTexture

还要注意

使用边是二的幂的纹理是理想的- webgl texture

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-03-10
    • 1970-01-01
    • 2012-03-15
    • 1970-01-01
    • 1970-01-01
    • 2017-08-11
    相关资源
    最近更新 更多