- 博客(24)
- 收藏
- 关注
原创 Unity Shader 解决 invalid output semantic ‘SV_POSITION‘ 报错
今天在看Unity Shader入门精要这本书,照着书上打代码练习的时候出现了invalid output semantic 'SV_POSITION'这个报错。本文为这个报错的解决方法。
2023-04-05 19:49:30 822 4
原创 解决在VS Code中编写Unity Shader代码高亮显示、代码补全、自动缩进
在使用过程中个人感觉VS的代码高亮不是很合理,所以后面用了VS Code,本文就是对解决在VS Code中编写Unity Shader代码高亮显示、代码补全、自动缩进的教程。
2023-03-29 10:08:28 5611 6
原创 Unity3D通过代码修改RGB值来控制UI与物体的Color颜色
在实际应用过程中,经常有需要将某一物体颜色修改成特定颜色的情况,此时Color中自带的颜色就不够用了,此时我们就需要通过用代码修改RGB值来控制颜色。
2023-02-20 10:02:58 6884 1
原创 Unity寻路系统之Navigation介绍
Unity中的寻路算法有很多种,为了方便开发者,Unity中内置了一套自动寻路系统。本文将主要介绍Navigation中的各种基础属性。
2023-02-14 10:40:47 1158 1
原创 Unity Shader渐变纹理(3D动漫风格纹理)
一开始,我们在渲染中使用纹理是为了定义一个物体的颜色,但后来人们发现,纹理其实可以用于存储任何表面属性。一种常见的用法就是使用渐变纹理来控制漫反射光照的结果。在之前计算漫反射光照是,我们都是使用表面法线和光照方向的点积结果与材质的反射率相乘来得到表面漫反射效果。...
2022-04-17 16:15:37 3650
原创 Unity Shader凹凸映射
纹理的另一种常见的应用就是凹凸映射。凹凸映射的目的是使用一张纹理来修改模型表面的法线,以便为模型提供更多细节。这种方法不会真的改变模型的顶点位置,只是让模型看起来是“凹凸不平”的,但可以从模型的轮廓处看出破绽。...
2022-04-15 21:00:12 2730
原创 Unity Shader基础纹理及纹理属性
单张纹理我们通常会使用一张纹理来代替漫反射颜色。在本节中,我们讲学习如何在Unity Shader中使用单张纹理来作为模拟的颜色。实践本实践中文吗任然使用Blinn-Phong光照模型来计算光照。我们先在新建的场景里去掉天空盒,去掉天空盒的方法在这:去掉天空盒的方法在这在此文章最底下再新建有个材质,最后在新建有个Shader,把这个Shader赋给刚刚建好的材质...
2022-04-08 14:48:06 3401
原创 UnityCG.cginc中一些常用的帮助函数
在计算光照模型的时候,我们往往需要得到光源方向、视角方向这两个基本信息。在之前,我们都是自行在代码里计算的,例如normaize(_WorldSpaceLightPos.xyz)来得到视角方向(这种方法实际只适用平行光),使用normalize(_WorldSpaceLightPos.xyz - i.worldPosition.xyz)来得到视角方向。当如果需要处理复杂的光照模型。如点光源和聚光灯,我们计算光源方向的方法就是错误的。这需要我们在代码中先判断光源类型,再计算光源信息。手动计算相对比较麻烦(但
2022-04-06 14:50:15 1464
原创 在Untiy Shader中实现高光反射光照模型(逐顶点光照、逐像素光照、Blinn—Phong光照模型)
我们知道基本光照模型中反射部分的计算公式:在公式可以看出,要计算高光反射需要4个参数:入射光线的颜色和强度clight,材质的高光反射系数mspecular,视角方向v以及反射方向r。其中,反射方向r可以有表面法线n和光源方向l计算而得...
2022-04-03 21:22:14 948
原创 在Unity Shader中实现漫反射光照模型(逐顶点漫反射光照、逐像素漫反射光照、半兰伯特光照)
Unity中的环境光和自发光在标准光照模型中,环境光和自发光的计算是最简单的,我们先打开Lighting窗口我们可以在这设置环境光的颜色目前环境光的强度已经改成了Intensity Multiplier,可以在这设置大多数物体是没有自发光特性的,在本书中绝大部分Shader中都没有计算自发光部分。如果要计算也非常简单我们只需要在片元着色器输出最后颜色之前,把材质的自发光颜色添加到输出颜色上即可...
2022-03-31 20:20:24 2409
原创 Unity Shader中的基础光照与标准光照模型(自发光、环境光、高光反射、漫反射)、BRDF光照模型
我们是如何看到这个世界的从宏观上来说,渲染包含了两大部分决定一个像素的可见性决定这个像素上的关照计算而光照模型就是用于决定一个像素上进行怎样的光照计算通常来讲,我们要模拟真实的光照环境来生成一张图片,需要考虑以下3种物理现象光线从光源中被发射出来光线和场景中的一些物体相交:一些管线被物体吸收了,二另一些被散射到其他方向摄像机吸收了一些光,产生了一张图像下面我们会针对每个部分进行解释光源在光学里,我使用辐照度来量化光。对于平行光来说,它的辐照度课通过计算在垂直于l的单位面积上单位
2022-03-29 20:09:58 4911
原创 Unity Shader中的CG/HLSL语义与Shader整洁之道
语义实际上就是一个赋给Shader输入和输出的字符串,这个字符串表达了这个参数的含义Unity支持的语义从应用阶段传递模型数据给顶点着色器时Unity支持的常用语义从顶点着色器传递数据给片元着色器时Unity使用的常用语义...
2022-03-28 13:54:52 1692
原创 Unity Shader内置的文件和变量
在我们编程的过程中,会使用到很多内置文件,内置文件里会包含很多函数、变量、宏等等Unity Shader中也有这些东西比如在CGIncludes文件夹中,就包含了许多Unity内置文件,里面就包含了一些常用的东西UnityCG.cginc里面包含了最常使用的帮助函数、宏、结构体UnityCG.cginc中一些常用的结构体...
2022-03-27 14:20:16 909
原创 Unity Shader中的顶点/片元着色器
顶点/片元着色器的基本结构模型数据从哪里来Struct a2v{ float4 vertex:POSITION; float4 NORMAL:NORMAL; float4 texcoord:TEXCOORD0;}Unity支持的语义有:POSITION,TANGENT,NORMAL,TEXCOORD0,TEXCOORD1,TEXCOOD2,TEXCOORD3,COLOR等。包含了顶点着色器的数据a表示应用(application),v表示顶点着色器(vertex shader),a
2022-03-25 16:29:23 1620
原创 解决在VS中编写Unity Shader代码高亮显示、代码补全、自动缩进
此教程为安装VS编写Unity Shader工具插件安装教程本人刚开始学习Unity Shader,发现得安装了VS上的插件才可以拥有一个比较好的写Shader代码的体验,所以把自己的方法分享出来,希望可以帮到个位先点击扩展中的管理扩展在联机右上角搜索栏中搜索Shader,然后下载ShaderLabVS此插件有代码补全和高亮显示功能,但当我们换行的时候,新的一行没有自动缩进,我们需要再安装另一个插件在搜索栏搜索SubLime,然后点击下载两个插件下载完毕后我们点击关闭,然后在关闭VS窗口
2022-03-24 19:39:36 11665 7
原创 Unity Shader的结构(续)
Shader"MyShader"{ Properties { //所需的各种属性 } SubShader { //真正意义上的Shader代码会出现在这里 //表面着色器(Surface Shader) //顶点/片元着色器(Vertex/Fragment Shader) //固定函数着色器(Fixed Function Shader) } SubShader { //和上一个SubShader类似 }}表面着色器表面着色器...
2022-03-24 09:00:00 92
原创 Unity Shader的结构
材质和Unity Shader在unity中,需要配合使用材质Material和Unity Shader才能达到需要的效果流程创建一个材质→创建一个Unity Shader,并把它赋给上一步中创建的材质→把材质赋给要渲染的对象→在材质面板中调整Unity Shader的属性,以得到满意的效果Unity中的材质Unity中的材质需要配合一个GameObject的Mesh或者Particle Systen组件来工作,它决定了我们的游戏对象看起来是什么样子的Unity中的Shader为了和前面通用的
2022-03-22 15:27:56 1411 1
原创 Unity Shader 渲染流水线
什么是渲染流水线渲染流水线的工作任务是由一个三维的场景出发、生成(渲染)一张二维图像。此过程分为三个阶段:应用阶段、几何阶段、光栅化阶段应用阶段:(1)输出渲染图元——点、线、三角面等(2)开发者准备好场景数据:摄像机的位置、视椎体、场景中包含的模型、使用了哪些光源。(3)开发者做一个粗粒度剔除工作,把不可见的物体剔除,不交给几何阶段处理(4)设置好每个模型的渲染状态(使用的材质(漫反射颜色、高光反射颜色)、使用的纹理、使用shader)几何阶段:(1)输出屏幕的顶点信息(2)处理所
2022-03-09 15:11:36 2058
Unity开发的2.5D飞机大战游戏
2022-12-10
Unity粒子瀑布效果,水从高处落下效果
2022-12-10
Unity3D开发的俯视角动作游戏(武士风格)
2022-12-10
Unity液体效果,将材质赋给物体即可使用(Shader)
2022-12-10
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人