Unity在URP环境下实现Grid参考网格效果的方法。

这篇博客介绍了如何使用ShaderGraph和GL方法在Unity3D中绘制3D网格线。作者首先展示了ShaderGraph在特定视角下线条闪烁的问题,然后提供了一个GL渲染线条的解决方案,通过脚本在相机渲染后期绘制稳定无闪烁的网格。博客还包括了相关Shader的代码片段,并在最后提到目前未发现明显问题,计划继续使用。

        首先是单一的使用ShaderGraph的方法,其截图如下:

        这个方法的问题是当摄像机与平面的角度越垂直效果越好,如果摄像机与平面较为平行,线条会闪烁。

        为了解决这个问题,决定采用GL的方式绘制线条,脚本内容如下:

using UnityEngine;
using UnityEngine.Rendering;

public class Grid : MonoBehaviour
{
	[SerializeField]
	Color color = new Color(1, 1, 1, 0.5f);
	[SerializeField]
	[Range(1, 1000)]
	float range = 20;
	[SerializeField]
	[Range(0.1f, 100)]
	float interval = 1;
	[SerializeField]
	[Range(0, 500)]
	float focusDistance = 3;
	[SerializeField]
	[Range(1, 500)]
	float fadeLength = 50;
	[SerializeField]
	Material mat;

	void Start()
	{
		if (!mat) mat = new Material(Shader.Find("Hidden/Grid"));
	}

	void OnEnable()
	{
		RenderPipelineManager.endCameraRendering += EndCameraRendering;
	}

	void O
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值