reactjs 使用React纤维/drei的文本掩蔽

oknrviil  于 2022-11-29  发布在  React
关注(0)|答案(1)|浏览(123)

是否可以遮罩<Text>/<Text3D>或使用<Text>/<Text3D>遮罩另一对象
就像这个image,它是一个文本屏蔽立方体。
我看过pmndrs/drei上的例子,也试过一些替换其他对象的方法,但是我不能让它处理2d或3d文本。
注:我是three.js和fiber的新手,但我知道您需要使用.json字体

z9ju0rcb

z9ju0rcb1#

这应该是可能的,通过所谓的模板,你的参考是正确的。
然而,模板技术不适用于2d文本,因为它使用了文本2d着色器不支持的特殊着色器指令。
文本2d只是网格对象与字符作为纹理,使用特殊的着色器,这是不包括模板语义需要它的工作。(你可以得到相同的扩展着色器)
你应该能够使用文本3D作为模板,这样:

<Mask id={1}>
  <Text3D/>
<Mask/>

然后道:

const stencil = useMask(1)

<Text3D>
   Text
   <meshStanadrtMaterial {…stencil}/>
<Text3D/>

相关问题