c4dtfd流体插件为啥不能渲染
渲染目标(RenderTarget)是可以在运行时写入数据的纹理,用于存储基础颜色、法线和环境光遮蔽等信息。对于用户而言,渲染目标就像是一种辅助相机,可以将场景捕捉到的图像存储到渲染目标上。随着技术的发展,现在可以通过蓝图等工具,实现更高级的效果,如流体模拟和雪变形。
在本教程中,我们将学习如何使用蓝图动态创建渲染目标,并在网格上显示渲染目标。我们还将学习如何在渲染目标上绘制纹理,并在游戏过程中更改画笔大小和纹理。
一、入门
需要下载本教程的材料并解压。然后,打开CanvasPainterStarter并找到相关的UI元素。这些元素包括画布、纹理及其大小等。在开始绘画之前,我们需要了解如何使用蓝图进行绘画。
二、绘画方法
我们需要一个渲染目标作为画布。要确定在哪里绘制渲染目标,需要进行光线。例如,如果画布是完美的UV映射,那么中心的命中将返回(0.5, 0.5)的值。我们可以使用简单的数学计算来确定绘制位置。但是为什么要在UV空间中获取位置呢?这是因为使用UV空间无需进行复杂的世界空间位置计算。
三、创建画布材质
接下来,我们需要创建一个将显示渲染目标的材质。在Materials文件夹中打开M_Canvas,创建一个TextureSampleParameter2D并将其命名为RenderTarget。之后将其连接到BaseColor。在蓝图中动态创建渲染目标并在画布材质中使用它。
四、创建渲染目标
创建渲染目标有两种方法,一种是通过编辑器创建,另一种是通过蓝图创建。使用蓝图创建的好处是只需根据需要创建渲染目标,不会使项目文件过于膨胀。在BP_Canvas的Event BeginPlay中添加节点来创建渲染目标并设置其分辨率和清除颜色。
五、显示渲染目标
将动态材质实例应用于画布网格以显示渲染目标。首先创建动态材质实例,然后将渲染目标传递给纹理参数。现在画布网格将显示渲染目标。
六、创建画笔材质
接下来需要创建一个材质作为画笔。在材料文件夹中创建一个名为M_Brush的材质,设置混合模式为半透明。然后创建一个TextureSampleParameter2D并将其命名为BrushTexture来连接它。在BP_Canvas中创建动态实例以更改画笔纹理。
七、将画笔绘制到渲染目标上
创建一个名为DrawBrush的函数来绘制画笔到渲染目标上。添加参数如纹理、画笔大小和绘制位置。然后设置画笔的纹理并使用突出显示的节点进行绘制操作。调整绘制位置和大小并解决纹理中心问题后连接所有节点完成绘图功能。最后告诉引擎停止绘制到渲染目标上。这就是绘图功能的基本流程。当执行DrawBrush函数时它会使用提供的纹理在指定的位置和大小绘制BrushMaterial到Render Target上。你可以通过改变BrushTexture和BrushSize的值来改变画笔的纹理和大小。另外你也可以通过添加光线节点实现在相机视线上进行动态绘画的功能,只要在射线击中画布时执行DrawBrush函数就可以了。你也可以根据需要更改画笔的大小和纹理,只需要通过蓝图动态改变BrushSize和BrushTexture的值就可以了。至于如何改变画笔纹理和大小的具体实现方式会在后面的教程中详细介绍。至此我们已经完成了基本的绘画功能实现了一个简单的画布绘画游戏你可以根据自己的需要在这个基础上添加更多的功能比如添加多个画布在不同的画布上绘画或者改变画笔的颜色透明度等等这将是一个有趣的项目可以充分发挥你的创造力实现你的创意想法!