顶点纹理shader


    Shader "Custom/VertDisplace" {
Properties {
_MainTex ("Base (RGB)", 2D) = "white" {}
}
SubShader {
Tags { "RenderType"="Opaque" }
LOD 200

CGPROGRAM
// Upgrade NOTE: excluded shader from OpenGL ES 2.0 because it does not contain a surface program or both vertex and fragment programs.
#pragma exclude_renderers gles

#pragma target 3.0
#pragma vertex vert
#pragma surface surf BlinnPhong

sampler2D _MainTex;

struct Input {
float2 uv_MainTex;
};

void vert (inout appdata_full v) {
#if !defined(SHADER_API_OPENGL)
float4 tex = tex2Dlod (_MainTex, float4(v.texcoord.xy,0,0));
v.vertex.z += tex.r * 0.2;
#endif
}

void surf (Input IN, inout SurfaceOutput o) {
half4 tex = tex2D(_MainTex, IN.uv_MainTex);
o.Albedo = tex.rgb;
o.Alpha = tex.a;
}

ENDCG
}
FallBack "Diffuse"
}

顶点纹理shader,布布扣,bubuko.com

时间: 2024-08-10 08:13:08

顶点纹理shader的相关文章

ShaderLab学习小结(一)最简化的顶点片断Shader

Shader "Custom/SimpleShader" //Shader最外层,""中定义Shader名 { SubShader{ //必要组成部分 pass{ //通道 CGPROGRAM //CG程序开头 #pragma vertex vert //定义顶点级程序 #pragma fragment frag //定义片断级程序 #include "unitycg.cginc" //引用unitycg文件,unity自定的结构体和函数等 st

【浅墨Unity3D Shader编程】之三 光之城堡篇:子着色器、通道与标签的写法 & 纹理混合

本系列文章由@浅墨_毛星云 出品,转载请注明出处. 文章链接:http://blog.csdn.net/poem_qianmo/article/details/41175585 作者:毛星云(浅墨)    微博:http://weibo.com/u/1723155442 邮箱: [email protected] 本文介绍了Unity中子着色器.通道和标签相关的详细概念与写法,以及纹理的设置方法,基本的纹理混合写法,写了5个Shader作为本文Shader讲解的实战内容,最后创建了一个梦幻的光之

Unity3d之Shader编程:子着色器、通道与标签的写法 & 纹理混合

一.子着色器 Unity中的每一个着色器都包含一个subshader的列表,当Unity需要显示一个网格时,它能发现使用的着色器,并提取第一个能运行在当前用户的显示卡上的子着色器. 我们知道,子着色器定义了一个渲染通道的列表,并可选是否为所有通道初始化所需要的通用状态.子着色器的写法如下: Subshader{ [Tags] [CommonState] Passdef [Passdef ...] } 也就是通过可选标签,通用状态 和 一个Pass 定义的列表构成了子着色器. 当Unity选择用于

【Unity Shader】(四) ------ 纹理之法线纹理、单张纹理及遮罩纹理的实现

笔者使用的是 Unity 2018.2.0f2 + VS2017,建议读者使用与 Unity 2018 相近的版本,避免一些因为版本不一致而出现的问题. [Unity Shader](三) ------ 光照模型原理及漫反射和高光反射的实现 [Unity Shader](五) ------ 透明效果之半透明效果的实现及原理 在游戏中,我们除了能看到游戏物体的形体轮廓,还能看到物体的一些具体外观,包括颜色,凹凸等.而实现这一步的就是使用 纹理.与纹理相对应的技术就是 纹理映射技术 ,相当于把一张图

OSG Shader GLSL 4.3 使用纹理 例子

OSG 中使用纹理shader 例子 #include <osgViewer/Viewer> #include <osgDB/ReadFile> #include <osg/Shape> #include <osg/Shapedrawable> #include <osg/MatrixTransform> #include <osg/Texture2D> static char * vertexShader= { "#ver

【浅墨Unity3D Shader编程】之九 深入理解Unity5中的Standard Shader (一)&amp;屏幕水幕特效的实现

本系列文章由@浅墨_毛星云 出品,转载请注明出处.   文章链接:http://blog.csdn.net/poem_qianmo/article/details/49556461 作者:毛星云(浅墨)    微博:http://weibo.com/u/1723155442 本文工程使用的Unity3D版本: 5.2.1 概要:本文主要介绍了Unity5中的标准着色器,并且也涉及到了基于物理的着色.延迟渲染等高级着色技术,而在文章后半部分,也对屏幕水幕特效的实现方法进行了讲解与分析. 依然是附上

GLSL Core Tutorial – Vertex Shader

译自:http://www.lighthouse3d.com/tutorials/glsl-core-tutorial/vertex-shader/ 一个顶点shader作用于一些独立的点,每个顶点操作一次.shader并不清楚其它组成图形图元的那些顶点,也没有说明作用的顶点属于哪种类型图元.对于每一个输入顶点,shader输出单一顶点(简单说就是顶点shader是逐顶点操作,作用结果还是一些顶点) 每一个顶点都有着用户定义的一些输入属性,例如:位置,法线向量,纹理坐标.顶点shader同样可以

【译】Unity3D Shader 新手教程(5/6) —— Bumped Diffuse Shader

动机 如果你满足以下条件,我建议你阅读这篇教程: 你想学习片段着色器(Fragment Shader). 你想实现复杂的多通道着色器(multipass),但是对其不是很了解. 你想使用上面提到的两种技术(片段着色器和多Pass)来实现描边效果的Toon shader,你就需要理解这两种技术的概念. 学习资源 Martin Kraus's fantastic Wiki Book GLSL Programming/Unity 引论 在教程的第4部分,我们创建了一个相当好的toon shader,该

Ogre参考手册(四)3.1.4-3.1.14 声明顶点、几何、片段程序(Ogre着色器脚本)

3.1.4 声明顶点.几何.片段程序 使用着色程序前需要先对其定义,一个程序定义可以用于多个材质,这仅需要在所使用的材质定义之前定义该程序. 程序定义可以内嵌在.material脚本中(需要放在所有引用的材质之前),或者希望可以在多个.material中使用,可以在外部.program脚本中定义.在.material和.program中的定义完全相同,区别仅在于.program文件会在所有.material之前解析,因此可以确保程序定义会先于任何使用它的材质定义. 程序可以是底层的(依据具体规范