Unity3d 真实的植物渲染

好久没写shader了,有些生疏,刚弄了个植物shader,分享一下。

先上图片:

重点需要注意的是fragment shader的透明部分

需要如此声明

		Tags{ "LightMode" = "ForwardBase" 		"Queue" = "AlphaTest" "IgnoreProjector" = "True" "RenderType" = "TransparentCutout" }
		Cull Back
			ZWrite on
			Blend SrcAlpha OneMinusSrcAlpha

Queue队列,决定渲染顺序

Background - 最初的渲染渲染,用来渲染天空盒或者背景

Geometry - 默认值,一般的不透明物体

AlphaTest - 渲染经过Alpha Test的像素

Transparent - 渲染透明物体

Overlay - 最后渲染的物体

"IgnoreProjector"="True"(不被Projectors影响)

关于renderType来自这里

Opaque: 用于大多数着色器(法线着色器、自发光着色器、反射着色器以及地形的着色器)。

Transparent:用于半透明着色器(透明着色器、粒子着色器、字体着色器、地形额外通道的着色器)。

TransparentCutout: 蒙皮透明着色器(Transparent Cutout,两个通道的植被着色器)。

Background: Skybox shaders. 天空盒着色器。

Overlay: GUITexture, Halo, Flare shaders. 光晕着色器、闪光着色器。

TreeOpaque: terrain engine tree bark. 地形引擎中的树皮。

TreeTransparentCutout: terrain engine tree leaves. 地形引擎中的树叶。

TreeBillboard: terrain engine billboarded trees. 地形引擎中的广告牌树。

Grass: terrain engine grass. 地形引擎中的草。

GrassBillboard: terrain engine billboarded grass. 地形引擎何中的广告牌草。

这里需要注意的是透明的blend部分官方文档可详细查看,

但如果只这么写透明部分会挡住后面的部分,我们还要在后面的代码中加上discard,直接丢弃像素,这样它就不会挡住后面的部分了,

			if (c.a<0.5)
				discard;

这里渲染的重点还是基于物理的渲染,之前有详细写过

由于资源里有两种贴图方案,我就写了两种shader进行了不同的计算

一种是specular Texture的一种是GlossTexture的

大芭蕉

<span style="font-size:14px;">			float3 cc = (c.rgb *(diff+0.2)*_Color*_Lum + all  * SpecC*_SC  * _SCP);
			return float4(cc * 2 + rim, c.a * (1 - Luminance(TransC) + _TL));</span>

玉竹

			float3 cc = (c.rgb *(diff + 0.2)*_Color*_Lum + (all + 0.1)*(saturate(Luminance(SpecC)) + 0.1)*_SC*_SCP);
			return float4(cc * 2 + rim, c.a * (1 - Luminance(TransC) + _TL));

也可以引申一些更好玩的东西比如在vertex shader中写入被风吹的效果

全部代码以共享至GitHub

                                                       ----------   by wolf96   http://blog.csdn.net/wolf96

时间: 2024-11-05 22:48:57

Unity3d 真实的植物渲染的相关文章

unity3d Hair real time rendering 真实头发实时渲染(转)

惊现塞拉酱 算法是Weta Digital根据siggraph2003的论文加以改进,改进之前使用的是Kajiya and Kay’s 模型,它能量不守恒,也就是说不是基于物理的,不准确 电镜下真实头发丝纤维的照片,我们发现上面有很多重叠的角质层叫做毛小皮也叫毛鳞片,他们相对根部的倾斜角度大约为3°,近似模型如下图 头发纤维的模型R为反射(re?ection),T为穿透(transmission),也就是折射这里假设光有三种传播方式R, TT, TRTR是直接反射,TT是经过两次折射TRT是穿透

unity3d Hair real time rendering 真实头发实时渲染

先放上效果 惊现塞拉酱 算法是Weta Digital根据siggraph2003的论文加以改进,改进之前使用的是Kajiya and Kay's 模型,它能量不守恒,也就是说不是基于物理的,不准确 电镜下真实头发丝纤维的照片,我们发现上面有很多重叠的角质层叫做毛小皮也叫毛鳞片,他们相对根部的倾斜角度大约为3°,近似模型如下图 头发纤维的模型 R为反射(re?ection),T为穿透(transmission),也就是折射 这里假设光有三种传播方式R, TT, TRT R是直接反射, TT是经过

高效真实的云渲染算法 【转】

原文链接 : http://www.cnblogs.com/effulgent/archive/2008/10/06/1305029.html 原文: Realistic and Fast Cloud Rendering NinianeWang MicrosoftCorporation(nowatGoogleInc.) [email protected] November11,2003 最近在网上看到很多云渲染的效果图,但很多人吝于向人分享经验知识,我不是很赞同这种想法,本来就是属于别人的知识,

剖析Unreal Engine超真实人类的渲染技术Part 2 - 眼球渲染

目录 三.眼球渲染 3.1 眼球的构造及理论 3.1.1 眼球的构造 3.1.2 眼球的渲染理论 3.2 眼球的渲染技术 3.2.1 角膜的半透和光泽反射 3.2.2 瞳孔的次表面散射 3.2.3 瞳孔的缩放 3.2.4 虹膜的颜色 3.2.5 其它眼球细节 3.3 眼球的底层实现 3.4 眼球的材质 3.4.1 眼球主材质 3.4.2 眼球附属物材质 3.5 眼球渲染总结 特别说明 参考文献 三.眼球渲染 都说眼睛是人类心灵的窗户,若是眼睛渲染得逼真,将给虚拟角色点睛之笔,给予其栩栩如生的灵魂

Unity3d 巫师3Ciri的渲染

--wolf96 16/10/6

进阶光照与材质之物体和材质

第四章主要介绍分析真实世界中某些常见材质的特性与细节,作者提醒我们应该时刻关注大自然真实世界中材质的特点,加强自己的思考与敏锐的观察力和感知力对渲染实现很有帮助.作者主要对如下材质进行了分析:塑料木头:树,木材,被油漆过的木材叶子和植物金属混凝土和石头:混凝土,砖石,自然界的石头皮肤头发和毛发大气半透明材质:玻璃,水油漆旧的磨损的材质 塑料  塑料有很多种颜色形状甚至有的上了不同的漆,但是它的材质构成是一致的.大部分塑料由白色或半透明的基质构成,这些基质充满了染色粒子,像下图这样 当 光照射到塑

我不是九爷 带了解 Unity3D与VR虚拟现实

对于大多数人来说,可能不知道Unity3D是什么,但是却知道VR虚拟现实是什么,更不会把VR虚拟现实和Unity3D联系在一起,外行的人根本不知道这两者之间有什么关系.那么,今天来给你讲解一下Unity3D与VR虚拟现实之间的区别和联系分别是什么? 什么是Unity3D?Unity3D是一软专业3D游戏引攀,其具备跨平台发布.离效能优化.高性价比,AAA级游戏画面演染效果等特点.目前Unity3D应用范围广泛,从手机游戏到联网的大型游戏,从严肃游戏到电子商务,再到VR虚拟现实均可完美呈现. 什么

【浅墨Unity3D Shader编程】之四 热带雨林篇: 剔除、深度测试、Alpha测试以及基本雾效合辑

本系列文章由@浅墨_毛星云 出品,转载请注明出处.   文章链接:http://hpw123.net/a/C__/kongzhitaichengxu/2014/1222/163.html 作者:毛星云(浅墨)    微博:http://weibo.com/u/1723155442 邮箱: [email protected] QQ交流群:330595914 更多文章尽在:http://www.hpw123.net 本文介绍了Unity中Shader书写中会用到的剔除.深度测试.Alpha测试以及基

腾讯优测优分享 | 探索react native首屏渲染最佳实践

腾讯优测是专业的移动云测试平台,旗下的优分享不定时提供大量移动研发及测试相关的干货~此文主要与以下内容相关,希望对大家有帮助. react native给了我们使用javascript开发原生app的能力,在使用react native完成兴趣部落安卓端发现tab改造后,我们开始对由react native实现的界面进行持续优化.目标只有一个,在享受react native带来的新特性的同时,在体验上无限逼近原生实现.作为一名前端开发,本文会从前端角度,探索react native首屏渲染最佳实