如何在Unity 3D中编写一个自定义着色器,用于点亮特定像素或像素组?

问题描述 投票:3回答:1

我正在Unity中制作一个FPS游戏,我希望环境能够随着玩家在他的环境中拍摄而点亮。所以说我有一棵树。首先,它将完全是黑色或灰色,但如果我在某处拍摄,我会看到一些绿色。要完成此功能,我使用光线投影来获得影响点,因此我可以访问播放器正在拍摄的点的任何渲染器。我想下一步是编写一个自定义着色器来点亮拍摄的确切像素。您是否知道如何编写此着色器或其他方式来实现此效果?

问候

unity3d graphics shader hlsl
1个回答
0
投票

如果您使用延迟渲染:Deferred decals

如果您正在使用正向渲染:Projectors

如果您需要一些更高级的“类似绘画”功能,请使用与RaycastHit.textureCoord结合的渲染纹理来获得光线交叉点处的精确UV坐标。您可以使用Graphics.Blit绘制渲染纹理的东西。查看this github project获取有关如何执行此操作的一些灵感。

© www.soinside.com 2019 - 2024. All rights reserved.