engine icon indicating copy to clipboard operation
engine copied to clipboard

Use Mask without modifying existing material

Open singlecoder opened this issue 11 months ago • 0 comments

问题描述

当前 Mask 的实现,当设置 Renderer 的 maskInteraction 的时候,会修改 Renderer 的现有材质,对自定义 Shader 的使用有很大限制

重构目标

当一个 Renderer 需要 Mask 的时候,不论怎么设置 maskInteraction,都要保证其材质自身状态不被修改

实现思路

  • 当 Renderer 设置 maskInteraction 的时候,仅记录状态,并不修改其材质
  • 在渲染队列真正渲染的时候,如果需要触发 Mask,渲染当前 Renderer 前,临时修改材质状态,当渲染完后,立马还原,保证在其他地方的使用不受影响

singlecoder avatar Mar 29 '24 02:03 singlecoder