- 博客(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
531
原创 Permutation & Combination
@toc[]组合计数组合数学主要是研究一组离散对象满足一定条件的安排的存在性、构造及计数问题。计数理论是狭义组合数学中最基本的一个研究方向,主要研究的是满足一定条件的排列组合及计数问题。组合计数包含计数原理、计数方法、计数公式。组合计数基本原理加法原理如果一个目标的实现可以在n种不同的情况下完成,且对于第i种情况又有mi种不同的方法,那么总的方法数N为:N=m1+m2+...+mn=∑i...
2019-07-13 17:27:33
717
原创 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
218
原创 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
140
原创 Extra:Variable Types
在我们使用Cg或者HLSL进行shader编写的过程中,常常涉及到一些变量类型的使用,其中数字类型有三种最基础的变量类型:float,half,fixed,由此延伸出的还有向量类型以及矩阵类型,如:float3,half4x4。虽然都是表示数字,但它们之间的差别还是应该清楚,而不是遇到数据就无脑地使用float。float: high precision floating point. Gen...
2019-05-04 10:45:51
148
原创 2.1:CGPROGRAM
前言经过前面两个章节的铺垫,我们对渲染以及Unity Shaderlab相关的知识已经有了大概的认识,接下来将要学习的就是Shader最重要的部分,SL(Shader Language),着色器语言。目前主流的着色器语言有HLSL,GLSL,Cg。三者在语法上也有诸多共通之处,选择一种学习即可。而在Unity中,主流是选择Cg作为着色器语言。在Shader编写的过程中,我们会经常穿梭在各个空间中...
2019-05-03 21:53:33
800
原创 TextField Template
记录一个在使用FairyGUI的TextField时遇到的坑。TextField有一个文本模板功能,可以实现类似占位符的功能,如:{ number = 0 },然后我们可以在脚本中修改number的值:textField.SetVar("number", "1").FlushVars();。运行时我们会发现,我们可以成功获取UI下的TextField,但修改操作却无法生效,实在让人费解。接下来...
2019-04-28 20:04:38
135
原创 Reflection
目录Reflection是什么Type应用Reflection是什么一般的程序的操作对象是数据(data),但有时候,我们想要在运行期获取有关程序自身的信息,例如我们想在编译器界面有一个类浏览器,这个时候,我们需要获取的就是有关程序集(program assemblies)自身的信息,这些信息我们称为元数据(metadata),程序获取自身或者其他程序集元数据的能力,就是反射(reflecti...
2019-04-21 14:12:04
354
原创 Attribute
目录Attribute是什么Attribute的形式Attribute的使用Predefined Attribute自定义Attribute[Obsolete]public static void Func() { // ...}Attribute是什么注释是对程序源代码的一种说明,在编译时会被编译器丢弃,不会影响程序的执行,但有时候我们希望“注释”可以影响到程序。这个时候,A...
2019-04-21 14:10:05
341
原创 Type Conversion
目录什么是转换转换的分类一般转换装箱、拆箱自定义转换转换的保障is运算符as运算符什么是转换转换是接受一个类型的值并使用它作为另一个类型的等价值的过程。转换后值等价,类型为目标类型。转换的分类一般转换从转换的方式来看,可以分为显式转换和隐式转换。显示和隐式最主要的区分点在于,这种转换是否让这个“值”的描述更加“精确”,如果是,那么则是显示转换,否则为隐式转换。例如:玫瑰是植物。如果我们需...
2019-04-19 22:26:33
133
原创 Interface
OOP中另一个重要的概念:Interface(接口)。接口在形式上与类相似,但又和类有所区别。接口的抽象定义是:描述一类物体具有的特征。例如:人可以行走,猫可以行走,虽然两者的具体行为不一致,但我们都可以把这个行为抽象成“行走”这个描述。下面是C#编程中的接口特征。接口是表示一组函数成员而不是成员的引用类型。接口成员不允许带有访问权限修饰符,显然这(例如一个private的接口)毫无意义,因此...
2019-04-19 22:24:57
149
原创 Event and Delegate
委托委托的实质是一个类。// 委托定义delegate ReturnType DelegateName([parameters]);// 委托声明DelegateName delegateInstance = new DelegateName();// 委托赋值delegateInstance = delegateFunctionName1;// 绑定/解绑委托delegateI...
2019-04-19 22:24:00
98
原创 1.5:Unity Render Pipeline
这一节主要是为上一节中没有提到的一些概念作补充。上一节提到了Unity中渲染路径的概念,为了更好地理解并使用Unity,我们有必要了解有关渲染路径的详细信息。Unity Render PipelineUnity作为引擎,为我们处理了许多渲染有关的行为细节,最终留下了Built-in Renderer(内置渲染),以及配置度更高的SRP(Scriptable Render Pipeline,可...
2019-04-19 22:22:53
876
原创 1.4:SubShader
目录什么是SubShaderSubShader包含了什么TagsCommonStatePassPass的种类Regular PassNameTagsRenderSetupUsePassGrabPass在了解了渲染流水线之后,我们可以开始SubShader的学习了。什么是SubShader我们在1.1节中提到:SubShader:SubShader是Shader代码的核心部分。由于运行终端...
2019-04-19 22:21:53
284
原创 1.2:Properties
本系列原更新于作者的github博客,优快云这边的更新速度可能会慢于github。这里给出链接。Properties如何声明Properties常规属性Texture(纹理)对于 2D Texture(2维纹理)对于Non 2D Texture (非2维纹理,如:Cube, 3D, 2DArray)Attributes(属性)Properties怎样提供给ShaderProperties和Sh...
2019-04-03 11:04:14
266
原创 1.1:Get Started with Unity Shaders
本系列原更新于作者的github博客,优快云这边的更新速度可能会慢于github。这里给出链接。Get Started with Unity Shaders什么是Shader第一个Shader最后第1章开始正式进入Unity Shader的学习。什么是Shader本系列约定,如无特殊说明,文中出现的Shader均基于Unity Shaderlab每一门编程语言的诞生都是为了方便人们和计...
2019-04-03 11:02:00
115
原创 0.3:Before We Start
本系列原更新于作者的github博客,优快云这边的更新速度可能会慢于github。这里给出链接。Before We Start需要做的准备需要做的准备首先肯定是需要安装Unity,我这里选择的版本是Unity version :2018.3.7f1。学习任何事物都离不开趁手的工具,Shader也不例外。我们可以选择Sublime Text,JB Rider Free For Student...
2019-04-03 11:00:23
176
原创 0.2:Game and Art
本系列原更新于作者的github博客,优快云这边的更新速度可能会慢于github。这里给出链接。Game and Art游戏是如何被开发的游戏中的美术最后通过上一节的学习,我们对游戏美术和游戏开发已经有了比较基本的了解。那么,该如何开发一款游戏呢。游戏是如何被开发的世界上第一款游戏《SpaceWar》是在一台小型计算机上运行的,在当时,只需要编写少量的代码即可写出一款游戏。尽管如此,游戏...
2019-04-03 10:58:14
110
原创 0.1:Why are We Addicted to Games
文章著作权归作者所有。转载请联系作者,并在文中注明出处,给出原文链接。本系列原更新于作者的github博客,优快云这边的更新速度可能会慢于github。这里给出链接。Why are We Addicted to Games前言引言游戏渲染又有何不同?最后)前言本系列仅用于记录并分享自己的学习过程,以及学习过程中遇到的问题,如有错漏,欢迎讨论。(第0章是Shader系列的引导部分,已经有计...
2019-04-03 10:53:46
341
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人