Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/react-native/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Autodesk forge Forge函数generateTexture()_Autodesk Forge_Autodesk Viewer - Fatal编程技术网

Autodesk forge Forge函数generateTexture()

Autodesk forge Forge函数generateTexture(),autodesk-forge,autodesk-viewer,Autodesk Forge,Autodesk Viewer,在下面的示例中,有一个名为generateTexture()的函数 是否可以将文本(数字)绘制到像素阵列中?或者可以在该着色器上绘制文本(数字) 我们的目标是画一个圆圈,里面有一个数字 更新: 我们注意到每个圆不能使用唯一的generateTexture()。generateTexture()结果由每个人使用。每个对象唯一可以自定义的是颜色,以及使用的纹理 我们可以为此创建一个解决方案,即生成0到99之间的每个纹理,然后让每个对象根据要显示的数量选择正确的纹理。不过,我们不知道这是否能有效地正

在下面的示例中,有一个名为
generateTexture()
的函数

是否可以将文本(数字)绘制到像素阵列中?或者可以在该着色器上绘制文本(数字)

我们的目标是画一个圆圈,里面有一个数字

更新: 我们注意到每个圆不能使用唯一的
generateTexture()
generateTexture()
结果由每个人使用。每个对象唯一可以自定义的是颜色,以及使用的纹理


我们可以为此创建一个解决方案,即生成0到99之间的每个纹理,然后让每个对象根据要显示的数量选择正确的纹理。不过,我们不知道这是否能有效地正常工作。否则,它可能必须是0到9+或该方向的某个值。任何关于我们最新问题的指南都将不胜感激。谢谢。

这是可能的,但您需要自己实施。着色器是一种非常低级的功能,因此无法直接绘制数字或文本,但您可以将给定字符转换为其二维像素数组的表示形式。

我可以使用以下代码成功显示文本,只需将generateTexture()替换为GenerateCastTexture()在示例中,您应该得到以下结果:

const generateCanvasTexture = () => {

  const canvas = document.createElement("canvas")
  const ctx = canvas.getContext('2d')

  ctx.font = '20pt Arial'
  ctx.textAlign = 'center'
  ctx.textBaseline = 'middle'
  ctx.fillText(new Date().toLocaleString(),
    canvas.width / 2, canvas.height / 2)

  const canvasTexture = new THREE.Texture(canvas)

  canvasTexture.needsUpdate = true
  canvasTexture.flipX = false
  canvasTexture.flipY = false

  return canvasTexture
}

谢谢。我们将做一些测试并在黑色背景上绘制白色文本(0到9),然后我们可以从中获取像素数据并在着色器中使用它。我们将看看是否有任何程序可以帮助我们自动获取图像中的像素值,否则我们只需手动测量并记录每个像素值。这可能会有所帮助:谢谢。我们已经更新了我们的问题。你能分享一下你对这件事的看法吗?非常感谢。你可以使用一个二维采样器数组作为统一的,就像在这个问题中:我还想到,你可以在纹理中渲染二维画布,这将为你提供强大的方式来向着色器渲染文本或更复杂的二维形状,而不必自己实现复杂的逻辑。看那个演示:或者再次感谢。我们将在接下来的几天做一些测试。看来我们正在接近一个解决方案。谢谢你的帮助,你好,菲利普。一切都很顺利。谢谢你的帮助。但是,有一个小问题:出于某种原因,阴影或环境光遮挡位于标记着色器的顶部,这在极少数情况下会导致标记全部处于黑暗中。椅子上的例子:我们应用程序中的例子:不确定如何解决这些问题。。。是否尝试在查看器中关闭环境光阴影和抗锯齿(也可以通过API完成)