Three.JS:球形线框材料/边缘控制器

问题描述 投票:1回答:1

Three.JS新手。大多数情况下,我想知道这是我想要做的正确方法。

我正在尝试在简单的球形几何体上渲染某种类型的线框材质。我正追寻这个特别的样子:

enter image description here

我目前的努力:

Note: Moved to Plunker below

http://plnkr.co/edit/FrCUIwxH1IL3wFKwHSRJ?p=preview

目前我正在使用EdgesHelper来获得一个整洁的网格,我不知道如何删除垂直线。

理想情况下,我需要控制水平线之间的距离和它们的不透明度,但是无法使用帮助器来完成此操作。我的另一个想法是为每条“线”绘制单独的线条几何形状,但我认为这有点过分。任何想法都表示赞赏。

javascript three.js drawing
1个回答
2
投票

一个简单的着色器like this是否足以满足您的需求?

顶点:

varying vec2 vUv;
void main() {
  vUv = uv;
  gl_Position = projectionMatrix * modelViewMatrix * vec4(position,1.0);
}

分段:

uniform vec3 color1;
uniform float alpha1;
uniform vec3 color2;
uniform float alpha2;
uniform float lines;
uniform float linewidth;
varying vec2 vUv;
void main() {
  float p = abs(fract(lines*vUv.y)*2.0-1.0);
  if(p < linewidth / 100.0){
    gl_FragColor = vec4(color1, alpha1);
  }else{
    gl_FragColor = vec4(color2, alpha2);
  }
}
© www.soinside.com 2019 - 2024. All rights reserved.