Shader学习(三)(片元着色器)

这篇具有很好参考价值的文章主要介绍了Shader学习(三)(片元着色器)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

1、在片元着色器处理漫反射

// Upgrade NOTE: replaced '_World2Object' with 'unity_WorldToObject'

Shader "Custom/specularfragement"
{
	properties{
		_sp("Specular",color) = (1,1,1,1)
		_shiness("Shiness",range(1,64)) = 8
	}

	SubShader
	{
		pass {
		tags{"LightMode" = "ForwardBase"}//光照模型
		CGPROGRAM
		#pragma vertex vert
		#pragma fragment frag
		#include "unitycg.cginc"
		#include "lighting.cginc"
		float4 _sp;
		fixed _shiness;
		struct v2f
		{
		   float4 pos:POSITION;
		   float3 normal:NORMAL;
		   float4 vertex:COLOR;
		};
		v2f vert(appdata_base v) {
			v2f o;
			o.pos = UnityObjectToClipPos(v.vertex);
			o.normal = v.normal;
			o.vertex = v.vertex;
			return o;
		}
		fixed4 frag(v2f IN) :COLOR
		{
			float3 N = UnityObjectToWorldNormal(IN.normal);
			float3 L = normalize(WorldSpaceLightDir(IN.vertex));
			//加入环境光
			fixed4 col = UNITY_LIGHTMODEL_AMBIENT;
			//Diffuse Color
			float diffuseScale = saturate(dot(N, L));
			col += diffuseScale * _LightColor0;
			return col;
		}
		ENDCG
		}
	}
}

在片元处理的漫反射相较于顶点中处理的漫反射在明暗交接处更加清晰
Shader学习(三)(片元着色器),学习,着色器文章来源地址https://www.toymoban.com/news/detail-668336.html

到了这里,关于Shader学习(三)(片元着色器)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • WebGL Shader着色器GLSL语言

    在2D绘图中的坐标系统,默认情况下是与窗口坐标系统相同,它以canvas的左上角为坐标原点,沿X轴向右为正值,沿Y轴向下为正值。其中canvas坐标的单位都是’px’。 WebGL使用的是正交右手坐标系,且每个方向都有可使用的值的区间,超出该矩形区间的图像不会绘制: X轴最左

    2024年02月14日
    浏览(35)
  • [ue4] 着色器绑定(Shader Binding)

            当我们在ue4中制作了一个美术材质之后,引擎本身会为我们做很多事情,它会把结点翻译为hlsl,生成多个shader变体,并在多个mesh pass中去选择性的调用所需的shader,其中一个重要的过程就是获取shader绑定的数据。         本文将主要讨论ue4是如何处理来自材质的不

    2024年02月10日
    浏览(37)
  • Unity | Shader(着色器)和material(材质)的关系

    一、前言 在上一篇文章中 【精选】Unity | Shader基础知识(什么是shader)_unity shader_菌菌巧乐兹的博客-CSDN博客 我们讲了什么是shader,今天我们讲一下shder和material的关系 二、在unity中shader的本质 unity中,shader就是一串代码,如下图shader(就是一个平平无奇的shader) 但是,这个sh

    2024年02月02日
    浏览(43)
  • Vulkan教程(13): Graphics pipeline Shader modules(着色器模块)

    Vulkan官方英文原文:Shader modules - Vulkan Tutorial 对应的Vulkan技术规格说明书版本: Vulkan 1.3.2 Unlike earlier APIs, shader code in Vulkan has to be specified in a bytecode format as opposed to human-readable syntax like GLSL and HLSL. This bytecode format is called SPIR-V and is designed to be used with both Vulkan and OpenCL (both Kh

    2024年02月06日
    浏览(26)
  • Unity记录一些glsl和hlsl的着色器Shader逆向代码

    以下内容一般基于 GLSL 300 之后 以下某些代码行,是“伪代码“,绝大部分是renderDoc 逆向产生标准代码 本人OpenlGL零基础,也不打算重头学 目录 Clip() 剔除函数 discard; FS最终颜色输出 out 和最终颜色相加方程 从 discard; 命令可得知,一般通过透明度剔除, _26 == color.a _21.w 刚

    2024年02月07日
    浏览(35)
  • 【Godot4自学手册】第三十九节利用shader(着色器)给游戏添加一层雾气效果

    今天,主要是利用shader给游戏给地宫场景添加一层雾气效果,增加一下气氛,先看一下效果: 一、新建ParallaxBackground根节点 新建场景,根节点选择ParallaxBackground,命名为Fog,然后将该场景保存到Component文件夹下。ParallaxBackground 使用一个或多个 ParallaxLayer 子节点来创建视差效

    2024年04月27日
    浏览(26)
  • 让AI臣服,而不是被它替代!让ChatGPT为我们编写Unity3d Shaderlab的着色器(shader)

    ChatGPT的火热大家应该都有目共睹,文案工作者、翻译工作者和画师等各种行业都在被嘲即将失业。不光是这些岗位的员工,作为资深社畜程序猿也能感受到会受到冲击。网上很多人都在发ChatGPT写的代码,并开始大肆宣扬AI要取代程序员了,今天测一测使用ChatGPT来生成一些代码,

    2023年04月23日
    浏览(34)
  • opengl 学习着色器

            着色器是使用一种叫GLSL的类C语言写成的。GLSL着色器编码顺序:声明版本==》定义输入输出==》uniform==》main函数。每个着色器的入口点是main函数,在main函数中我们处理所有的输入变量,并将结果输出到输出变量中。如下图:         顶点着色器的每个输入变量

    2024年02月22日
    浏览(29)
  • 着色器语言GLSL学习

    注意:位置坐标大小可能大于1,小于0,因此要将其转化为0-1之间 clamp(num, min, max):将num值约束在(min, max)之间,小于min,值为min,大于max,值为max,在min-max之间,值为num step(n, x):当xn, 返回0;否则返回1 设长度为r,则可列出如下公式 由于光照的运算需要放在视图空间下,所

    2024年01月21日
    浏览(27)
  • UE4 顶点着色 学习笔记

    首先区别一下StaticMesh和StaticMeshComponent StaticMesh是模型本身 而StaticMeshComponent是模型出来的实例 直接修改StaticMesh的内容,所有StaticMeshComponent实例都会产生变化 而修改StaticMeshComponent直会对实例产生影响不会对StaticMesh有任何修改 函数参数 1、要修改顶点着色的StaticMeshCommponent

    2024年02月04日
    浏览(42)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包