自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

LiF

To cure sometimes, to relieve often, to comfort always.

  • 博客(19)
  • 收藏
  • 关注

原创 1.3:Render Pipeline and GPU Pipeline

Render Pipeline and GPU Pipeline什么是流水线渲染流水线是怎样运作的应用阶段几何阶段光栅化阶段CPU和GPU之间的通信GPU流水线Vertex Shader(顶点着色器)Tessellation Shader(曲面细分着色器)& Geometry Shader(几何着色器)Clipping(裁剪)Screen Mapping(屏幕映射)Triangle Set...

2019-04-03 11:07:03 271

原创 Permutation & Combination

@toc[]组合计数组合数学主要是研究一组离散对象满足一定条件的安排的存在性、构造及计数问题。计数理论是狭义组合数学中最基本的一个研究方向,主要研究的是满足一定条件的排列组合及计数问题。组合计数包含计数原理、计数方法、计数公式。组合计数基本原理加法原理如果一个目标的实现可以在n种不同的情况下完成,且对于第i种情况又有mi种不同的方法,那么总的方法数N为:N=m1+m2+...+mn=∑i...

2019-07-13 17:27:33 513

原创 CRT、EX-CRT & Lucas、Ex-Lucas

目录中国剩余定理扩展中国剩余定理卢卡斯定理扩展卢卡斯定理中国剩余定理中国剩余定理,Chinese Remainder Theorem,又称孙子定理,给出了一元线性同余方程组的有解判定条件,并用构造法给出了通解的具体形式。现在有方程组:(S):{x≡a1(mod m1)x≡a2(mod m2)    .  &nbs...

2019-07-13 17:14:00 131

原创 Extra:Cg Math Functions

目录常用[Cg函数](https://developer.download.nvidia.cn/cg/index_stdlib.html)数学函数光照函数纹理采样函数常用Cg函数数学函数abs(x):绝对值// float类型的实现float abs(float x) { return max(-a, a);}sin(x):正弦,输入为弧度// float类型的实现fl...

2019-05-04 20:42:00 103

原创 Extra:Variable Types

在我们使用Cg或者HLSL进行shader编写的过程中,常常涉及到一些变量类型的使用,其中数字类型有三种最基础的变量类型:float,half,fixed,由此延伸出的还有向量类型以及矩阵类型,如:float3,half4x4。虽然都是表示数字,但它们之间的差别还是应该清楚,而不是遇到数据就无脑地使用float。float: high precision floating point. Gen...

2019-05-04 10:45:51 100

原创 2.1:CGPROGRAM

前言经过前面两个章节的铺垫,我们对渲染以及Unity Shaderlab相关的知识已经有了大概的认识,接下来将要学习的就是Shader最重要的部分,SL(Shader Language),着色器语言。目前主流的着色器语言有HLSL,GLSL,Cg。三者在语法上也有诸多共通之处,选择一种学习即可。而在Unity中,主流是选择Cg作为着色器语言。在Shader编写的过程中,我们会经常穿梭在各个空间中...

2019-05-03 21:53:33 693

原创 TextField Template

记录一个在使用FairyGUI的TextField时遇到的坑。TextField有一个文本模板功能,可以实现类似占位符的功能,如:{ number = 0 },然后我们可以在脚本中修改number的值:textField.SetVar("number", "1").FlushVars();。运行时我们会发现,我们可以成功获取UI下的TextField,但修改操作却无法生效,实在让人费解。接下来...

2019-04-28 20:04:38 106

原创 Reflection

目录Reflection是什么Type应用Reflection是什么一般的程序的操作对象是数据(data),但有时候,我们想要在运行期获取有关程序自身的信息,例如我们想在编译器界面有一个类浏览器,这个时候,我们需要获取的就是有关程序集(program assemblies)自身的信息,这些信息我们称为元数据(metadata),程序获取自身或者其他程序集元数据的能力,就是反射(reflecti...

2019-04-21 14:12:04 260

原创 Attribute

目录Attribute是什么Attribute的形式Attribute的使用Predefined Attribute自定义Attribute[Obsolete]public static void Func() { // ...}Attribute是什么注释是对程序源代码的一种说明,在编译时会被编译器丢弃,不会影响程序的执行,但有时候我们希望“注释”可以影响到程序。这个时候,A...

2019-04-21 14:10:05 229

原创 Type Conversion

目录什么是转换转换的分类一般转换装箱、拆箱自定义转换转换的保障is运算符as运算符什么是转换转换是接受一个类型的值并使用它作为另一个类型的等价值的过程。转换后值等价,类型为目标类型。转换的分类一般转换从转换的方式来看,可以分为显式转换和隐式转换。显示和隐式最主要的区分点在于,这种转换是否让这个“值”的描述更加“精确”,如果是,那么则是显示转换,否则为隐式转换。例如:玫瑰是植物。如果我们需...

2019-04-19 22:26:33 97

原创 Interface

OOP中另一个重要的概念:Interface(接口)。接口在形式上与类相似,但又和类有所区别。接口的抽象定义是:描述一类物体具有的特征。例如:人可以行走,猫可以行走,虽然两者的具体行为不一致,但我们都可以把这个行为抽象成“行走”这个描述。下面是C#编程中的接口特征。接口是表示一组函数成员而不是成员的引用类型。接口成员不允许带有访问权限修饰符,显然这(例如一个private的接口)毫无意义,因此...

2019-04-19 22:24:57 100

原创 Event and Delegate

委托委托的实质是一个类。// 委托定义delegate ReturnType DelegateName([parameters]);// 委托声明DelegateName delegateInstance = new DelegateName();// 委托赋值delegateInstance = delegateFunctionName1;// 绑定/解绑委托delegateI...

2019-04-19 22:24:00 70

原创 1.5:Unity Render Pipeline

这一节主要是为上一节中没有提到的一些概念作补充。上一节提到了Unity中渲染路径的概念,为了更好地理解并使用Unity,我们有必要了解有关渲染路径的详细信息。Unity Render PipelineUnity作为引擎,为我们处理了许多渲染有关的行为细节,最终留下了Built-in Renderer(内置渲染),以及配置度更高的SRP(Scriptable Render Pipeline,可...

2019-04-19 22:22:53 771

原创 1.4:SubShader

目录什么是SubShaderSubShader包含了什么TagsCommonStatePassPass的种类Regular PassNameTagsRenderSetupUsePassGrabPass在了解了渲染流水线之后,我们可以开始SubShader的学习了。什么是SubShader我们在1.1节中提到:SubShader:SubShader是Shader代码的核心部分。由于运行终端...

2019-04-19 22:21:53 214

原创 1.2:Properties

本系列原更新于作者的github博客,CSDN这边的更新速度可能会慢于github。这里给出链接。Properties如何声明Properties常规属性Texture(纹理)对于 2D Texture(2维纹理)对于Non 2D Texture (非2维纹理,如:Cube, 3D, 2DArray)Attributes(属性)Properties怎样提供给ShaderProperties和Sh...

2019-04-03 11:04:14 219

原创 1.1:Get Started with Unity Shaders

本系列原更新于作者的github博客,CSDN这边的更新速度可能会慢于github。这里给出链接。Get Started with Unity Shaders什么是Shader第一个Shader最后第1章开始正式进入Unity Shader的学习。什么是Shader本系列约定,如无特殊说明,文中出现的Shader均基于Unity Shaderlab每一门编程语言的诞生都是为了方便人们和计...

2019-04-03 11:02:00 88

原创 0.3:Before We Start

本系列原更新于作者的github博客,CSDN这边的更新速度可能会慢于github。这里给出链接。Before We Start需要做的准备需要做的准备首先肯定是需要安装Unity,我这里选择的版本是Unity version :2018.3.7f1。学习任何事物都离不开趁手的工具,Shader也不例外。我们可以选择Sublime Text,JB Rider Free For Student...

2019-04-03 11:00:23 142

原创 0.2:Game and Art

本系列原更新于作者的github博客,CSDN这边的更新速度可能会慢于github。这里给出链接。Game and Art游戏是如何被开发的游戏中的美术最后通过上一节的学习,我们对游戏美术和游戏开发已经有了比较基本的了解。那么,该如何开发一款游戏呢。游戏是如何被开发的世界上第一款游戏《SpaceWar》是在一台小型计算机上运行的,在当时,只需要编写少量的代码即可写出一款游戏。尽管如此,游戏...

2019-04-03 10:58:14 78

原创 0.1:Why are We Addicted to Games

文章著作权归作者所有。转载请联系作者,并在文中注明出处,给出原文链接。本系列原更新于作者的github博客,CSDN这边的更新速度可能会慢于github。这里给出链接。Why are We Addicted to Games前言引言游戏渲染又有何不同?最后)前言本系列仅用于记录并分享自己的学习过程,以及学习过程中遇到的问题,如有错漏,欢迎讨论。(第0章是Shader系列的引导部分,已经有计...

2019-04-03 10:53:46 278

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除