当我使用Three.js创建一个点时,它看起来像一个正方形。我怎样才能让它看起来圆?我在文档中看到了一些混合因素,但我不太明白如何将它们用于我的观点,我甚至不知道它是否是正确的方式。Three.js - Points
1
A
回答
1
我使用的一个技巧是创建一个SVG圆形元素,将其渲染到Canvg的画布上,并将该画布渲染到点云中使用的纹理。
通过在圆上应用渐变,我可以给3D圆球上带有2D圆的发光幻觉。
有太多的代码发布到答案,但我有一个在Github上的项目,你可以看看,如果感兴趣,这表明了这个想法。请参阅:https://github.com/alexpreynolds/cubemaker及相关演示:http://alexpreynolds.github.io/cubemaker/
如果您只是想要圆圈而没有“闪亮”效果,则可以删除渐变。或者直接画一个圆圈到一个画布元素并完全跳过SVG。
1
亚历克斯雷诺兹的答案是正确的。我添加这一个来提供更多细节:据我所知,有两种方法来定制你的点的外观。
随着docs suggets,使用纹理(
THREE.PointsMaterial({map:texture})
):最直观的就是用你的形象:
var texture=THREE.ImageUtils.loadTexture('url-to-my-image');
您也可以借鉴的东西一个画布,并将其用作纹理。这包括画布中的原始绘图,Alex Reynolds建议的SVG导入或任何其他技术。你可以检查他的链接并寻找threejs的例子。这特别用于渲染精灵上的2D文本,你会发现更多的例子。
var texture=THREE.Texture(canvas);
检查three.js所使用的纹理的更多细节的例子在
Points
使用着色器:
如果你知道着色器,你可以写一个小片段着色器即会导致这些解决方案中最轻,最精确的解决方案。
相关问题
- 1. Java:float [] [] points
- 2. Docking controls to points
- 3. MapField with Points
- 4. three20 pain points
- 5. 使用bufferGeometry获取THREE.js Points对象中顶点的屏幕坐标
- 6. GTFS Shape Extraneous Data Points
- 7. CakePHP的“Points”系统
- 8. 您的SQL语法有错误;靠近'SET` points` =`points` +?'
- 9. latlon points的相对位置
- 10. 从Goocanvas获取坐标:: Points
- 11. three.js创建洞
- 12. Three.js PointsMaterial AdditiveBlending artifact
- 13. Javascript中的非破坏断点(trace points)?
- 14. TeeChart C#Points系列自定义宽度
- 15. three.js所在渲染
- 16. THREE.CameraDolly不是构造函数(three.js所&dolly.js)
- 17. 在Three.JS
- 18. Three.js - TransformControls
- 19. Three.js Ellipse
- 20. Three.js删除组中的LOD
- 21. Three.js加载大型模型
- 22. Three.js - 拖放(XZ)
- 23. three.js所和WebGL
- 24. THREE.js - 多面
- 25. Three.js AWS S3 CORS
- 26. THREE.js linewidth contradiction
- 27. Three.js - 从点
- 28. IntersectObjects - THREE.Line - Three.js
- 29. Three.js WebGLRenderer性能
- 30. 变量three.js
感谢您的提示。我对着色器不太好,而且我想要做到没有纹理。 – vixenn