gpt4 book ai didi

three.js - 三个js : why is wireframe thickness not adjusting for me?

转载 作者:行者123 更新时间:2023-12-05 02:19:39 26 4
gpt4 key购买 nike

我无法创建粗线框。使用以下代码:

new THREE.MeshBasicMaterial( {
color: new THREE.Color( 'rgb(100,100,100)' ),
emissive: new THREE.Color( 'rgb(23,23,23)' ),
shading: THREE.FlatShading,
wireframeLinewidth: 10,
wireframe: true
})

我得到以下结果:

enter image description here

无论我使用什么数字,线条总是 1px 粗。我注意到 threejs api 演示页面也是如此:

enter image description here

这是一个已知的错误吗?有什么解决办法吗?

最佳答案

WebGL1 中所需的最大线条粗细为 1,因此基本上您的浏览器或操作系统或驱动程序的线条粗细限制为 1。

在 WebGL2 中,限制为 1 更为常见,因为它在 OpenGL 4.0+ Core Profile 中为 1。

来自 OpenGL 4.+ 规范,E.2.1 节

E.2.1 Deprecated But Still Supported Features

The following features are deprecated, but still present in the core profile. They may be removed from a future version of OpenGL, and are removed in a forward compatible context implementing the core profile.

  • Wide lines - LineWidth values greater than 1.0 will generate an INVALID_VALUE error.

虽然 WebGL2 在桌面上基于 OpenGL ES 3.0,但它在 OpenGL 4 或 ANGLE 之上运行,两者的限制均为 1。自从昨天发布的 Firefox 51 和 Chrome 56 以来,它们都在桌面上使用 ANGLE 或 OpenGL 4+这意味着即使在 WebGL1 中,现在几乎所有地方的限制都是 1

所有这些的要点是,除非你只关心 1 的线,否则你不应该使用 GL 的线图来画线(是的,我知道,听起来很傻)。

相反,您需要想出一些其他解决方案。

一些链接,

首先是 three.js 的库

https://github.com/spite/THREE.MeshLine

还有一些关于如何创建线条的文章

http://labs.hyperandroid.com/efficient-webgl-stroking

https://cesiumjs.org/2013/04/22/Robust-Polyline-Rendering-with-WebGL/

https://mattdesl.svbtle.com/drawing-lines-is-hard

关于three.js - 三个js : why is wireframe thickness not adjusting for me?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41900304/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com