将线框更改为false后,面不可见

库纳尔·维亚斯(Kunal Vyas)

我试图画一栋房子,为此我创造了面孔。MeshBasicMaterialwireframe设置为true当我做了,但是当我想纹理添加到它,我得到了错误。对于故障排除,我更改wireframefalse,以查看出了什么问题。我的三张脸都没有画。随着wireframe设置为false在此处输入图片说明

而当它是true在此处输入图片说明

我尝试将线框设置为true来绘制缺少的面,然后看到它们被绘制了。但是,当我将参数更改为false时,它不会绘制面孔。

我的代码如下:

<!DOCTYPE html>

<head>
  <title>Textures</title>
  <meta charset="utf-8" />
</head>

<body style="font-family:georgia;">

  <script src="http://www.erobo.net/scripts/javascript/33/scripts/three.min.js"></script>

  <div style="width: 580px; height:580px; margin: 0 auto; font-family:georgia;">
    <h2><i>Textures</i></h2>
    <b>My Name</b> [
    <text style="font-family:lucida console; font-size:14px">[email protected]</text>]
    <br>
    <hr>
    <form id="myForm">

      <input type="button" onclick="clearScreen()" value="Clear" style="width: 50px; height: 25px; background-color:lightgrey">
    </form>
    <br>

    <div id="divContainer" style="float:left; width:600px; height:400px; border:2px solid blue;">
      <script>
        var container = document.getElementById("divContainer");
  var renderer = new THREE.WebGLRenderer();
  renderer.setSize(container.offsetWidth, container.offsetHeight);
  container.appendChild(renderer.domElement);
  var aspectRatio = container.offsetWidth / container.offsetHeight;
  var scene = new THREE.Scene();

  var camera = new THREE.OrthographicCamera(-aspectRatio * 100 / 3, aspectRatio * 100 / 2, 100 / 2, -100 / 3, -1000, 1000);
  camera.position.set(20, 10, 20);
  camera.lookAt(scene.position);

  var geometry = new THREE.Geometry();
  var axesGeometry = new THREE.Geometry();
  var material = new THREE.MeshBasicMaterial({
    //map: texture, 
    //overdraw: 0.5,
    color: 0xFF0000,
    wireframe: true
  });

  var axesMaterial = new THREE.LineBasicMaterial({
    color: 0x00FF00
  });

  axesGeometry.vertices.push(new THREE.Vector3(0, 0, 0));
  axesGeometry.vertices.push(new THREE.Vector3(0, 0, 160));
  axesGeometry.vertices.push(new THREE.Vector3(0, 0, 0));
  axesGeometry.vertices.push(new THREE.Vector3(0, 160, 0));
  axesGeometry.vertices.push(new THREE.Vector3(0, 0, 0));
  axesGeometry.vertices.push(new THREE.Vector3(160, 0, 0));

  geometry.vertices.push(new THREE.Vector3(0, 0, 0), new THREE.Vector3(0, 0, 30), new THREE.Vector3(0, 30, 30), new THREE.Vector3(0, 30, 0));
  geometry.vertices.push(new THREE.Vector3(0, 0, 0), new THREE.Vector3(70, 0, 0), new THREE.Vector3(70, 30, 0), new THREE.Vector3(0, 30, 0));
  geometry.vertices.push(new THREE.Vector3(70, 0, 0), new THREE.Vector3(70, 0, 30), new THREE.Vector3(70, 30, 30), new THREE.Vector3(70, 30, 0));
  geometry.vertices.push(new THREE.Vector3(70, 30, 30), new THREE.Vector3(0, 30, 30), new THREE.Vector3(0, 0, 30), new THREE.Vector3(70, 0, 30));
  geometry.vertices.push(new THREE.Vector3(0, 30, 30), new THREE.Vector3(0, 40, 15), new THREE.Vector3(0, 30, 0));
  geometry.vertices.push(new THREE.Vector3(0, 30, 0), new THREE.Vector3(70, 30, 0), new THREE.Vector3(70, 40, 15), new THREE.Vector3(0, 40, 15));
  geometry.vertices.push(new THREE.Vector3(0, 30, 30), new THREE.Vector3(70, 30, 30), new THREE.Vector3(70, 40, 15), new THREE.Vector3(0, 40, 15));
  geometry.vertices.push(new THREE.Vector3(70, 30, 30), new THREE.Vector3(70, 40, 15), new THREE.Vector3(70, 30, 0));

  geometry.faces.push(new THREE.Face4(0, 1, 2, 3));
  geometry.faces.push(new THREE.Face4(4, 5, 6, 7));
  geometry.faces.push(new THREE.Face4(8, 9, 10, 11));
  geometry.faces.push(new THREE.Face4(12, 13, 14, 15));
  geometry.faces.push(new THREE.Face3(16, 17, 18));
  geometry.faces.push(new THREE.Face4(19, 20, 21, 22));
  geometry.faces.push(new THREE.Face4(23, 24, 25, 26));
  geometry.faces.push(new THREE.Face3(27, 28, 29));

  geometry.computeFaceNormals();
  geometry.computeCentroids();
  var axes = new THREE.Line(axesGeometry, axesMaterial);
  var line = new THREE.Mesh(geometry, material);

  //rotation
  line.rotation.x = 0;
  line.rotation.y = 0;
  line.rotation.z = 0;
  axes.rotation.x = 0;
  axes.rotation.y = 0;
  axes.rotation.z = 0;

  scene.add(line);
  scene.add(axes);

  var light = new THREE.PointLight(0x0000ff);
  light.position.set(100, 100, 100);
  scene.add(light);

  renderer.render(scene, camera);
      </script>
    </div>
</body>
<br>
<i>Instructions go here.</i>

</div>
</body>

</html>

我已经通过逐一绘制面来检查代码几次,但是在将线框设置为false的情况下,不会绘制八分之三的面。

line.rotation.y减小0到,-0.6;以注意未绘制的面。

本编码器

这是因为默认情况下,它只会绘制面孔的“前部”。正面是根据脸部的顶点的顺序定义的,默认情况下,如果从正面查看脸部,则顶点将逆时针旋转:

https://www.opengl.org/wiki/Face_Culling

如果不想重新排列顶点以使缠绕顺序一致,那么一种简单的解决方案是在材质中将面设置为THREE.DoubleSide

var material = new THREE.MeshBasicMaterial({
    //map: texture, 
    //overdraw: 0.5,
    color: 0xFF0000,
    wireframe: true,
    side: THREE.DoubleSide
});

这会画脸的两面,但效率较低(必须画两倍的脸)

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何使用javascript在一定时间后将css显示从可见更改为不可见

来自分类Dev

当您已经将debug更改为true时,如何处理laravel不可见的500个内部错误?

来自分类Dev

iOS Safari问题-将位置绝对更改为固定时,滚动时元素变得不可见

来自分类Dev

SharedPreferences 保存单击后不可见的按钮更改

来自分类Dev

将每个可见的 src 更改为它的数据属性

来自分类Dev

将JTable添加到Jpanel后不可见

来自分类Dev

将JTable添加到Jpanel后不可见

来自分类Dev

PostgreSQL 9.5-更改为max_connections对从属不可见

来自分类Dev

设置可见后,Cardview 不会变为不可见

来自分类Dev

当可见更改为false时,为什么JQuery无法获取Textarea值?

来自分类Dev

将可见的图像从False更改为True,然后在用户窗体的过程中返回

来自分类Dev

将可见的图像从False更改为True,然后在用户窗体的过程中返回

来自分类Dev

待机后鼠标指针不可见

来自分类Dev

撤消后 Recycleview 项目不可见

来自分类Dev

如何在TextInputLayout Android中更改setEndIconDrawable的可见性(可见,不可见或不可见)?

来自分类Dev

更改组件的位置后形状变得不可见

来自分类Dev

重定向会话变量后将PHP更改为false

来自分类Dev

如何在量角器中将不可见元素(在appium检查器中显示)的可见性更改为true?

来自分类Dev

将RecyclerView设置为不可见

来自分类Dev

单击时将表> TR的隐藏状态更改为可见状态

来自分类Dev

CSS延迟将元素的可见性从“ visible”更改为“ hidden”

来自分类Dev

仅在选中复选框时,如何将文本字段更改为可见?

来自分类Dev

如何将EditText输入类型从密码更改为可见?

来自分类Dev

HTML SVG如何在鼠标悬停时将元素更改为可见/隐藏?

来自分类Dev

如何在底部对话框对话框中将稀松布更改为不可见?

来自分类Dev

将功能发布到门户后,Azure功能在功能列表中不可见

来自分类Dev

将stderr全局重定向到/ dev / null后出现不可见的提示

来自分类Dev

将数据类型从FLOAT更改为DECIMAL。不可预见的问题?

来自分类Dev

$ scope元素在指令外不可见(使用$ scope:false)

Related 相关文章

  1. 1

    如何使用javascript在一定时间后将css显示从可见更改为不可见

  2. 2

    当您已经将debug更改为true时,如何处理laravel不可见的500个内部错误?

  3. 3

    iOS Safari问题-将位置绝对更改为固定时,滚动时元素变得不可见

  4. 4

    SharedPreferences 保存单击后不可见的按钮更改

  5. 5

    将每个可见的 src 更改为它的数据属性

  6. 6

    将JTable添加到Jpanel后不可见

  7. 7

    将JTable添加到Jpanel后不可见

  8. 8

    PostgreSQL 9.5-更改为max_connections对从属不可见

  9. 9

    设置可见后,Cardview 不会变为不可见

  10. 10

    当可见更改为false时,为什么JQuery无法获取Textarea值?

  11. 11

    将可见的图像从False更改为True,然后在用户窗体的过程中返回

  12. 12

    将可见的图像从False更改为True,然后在用户窗体的过程中返回

  13. 13

    待机后鼠标指针不可见

  14. 14

    撤消后 Recycleview 项目不可见

  15. 15

    如何在TextInputLayout Android中更改setEndIconDrawable的可见性(可见,不可见或不可见)?

  16. 16

    更改组件的位置后形状变得不可见

  17. 17

    重定向会话变量后将PHP更改为false

  18. 18

    如何在量角器中将不可见元素(在appium检查器中显示)的可见性更改为true?

  19. 19

    将RecyclerView设置为不可见

  20. 20

    单击时将表> TR的隐藏状态更改为可见状态

  21. 21

    CSS延迟将元素的可见性从“ visible”更改为“ hidden”

  22. 22

    仅在选中复选框时,如何将文本字段更改为可见?

  23. 23

    如何将EditText输入类型从密码更改为可见?

  24. 24

    HTML SVG如何在鼠标悬停时将元素更改为可见/隐藏?

  25. 25

    如何在底部对话框对话框中将稀松布更改为不可见?

  26. 26

    将功能发布到门户后,Azure功能在功能列表中不可见

  27. 27

    将stderr全局重定向到/ dev / null后出现不可见的提示

  28. 28

    将数据类型从FLOAT更改为DECIMAL。不可预见的问题?

  29. 29

    $ scope元素在指令外不可见(使用$ scope:false)

热门标签

归档