不会unity能直接学unity shader学习么

【UnityShader从零开始】
前言部分主要是讲述一下个人对学习UnityShader的一些建议,以及描述一下图形渲染的大概模型和UnityShader的工作方式.
首先要说明一点,要想学好Shader而不只是停留在会用几个简单语法的层面,那你就一定不可避免的需要接触数学,主要是线性代数,深入研究可能会用到微积分和空间几何,要做好心理准备,总之要学习Shader不难,但要想学好,你真的要花一番功夫.再有一点就是编写Shader来说目前只有一些有限功能的带代码提示的编辑器,还没有可以调试的工具,一旦Shader出错Unity给出的提示经常是非常不明确的,这时候你只能耐心的一行行分析了.
  先说明的一下什么是Shader,Shader一般被翻译为"着色器",他并不是指某一种具体语言,他是一种技术,可以让程序员去通过编写代码去参与到GPU渲染图形的具体流程中去,去制作一些精美的特效和动画甚至是让模型发生奇怪的形变,简单点就是可以把它理解成一种对呈现到屏幕上画面的一种美化工具,想一想是不是很酷,你竟然可以去参与显卡的工作.以前写一辈子Hello
world一直和CPU打交道.
  而编写Shader目前比较知名的是基于DirectX的HLSL和基于OpenGL的GLSL,而我们Unity用的ShaderLab是基于Nvida和Microsoft一同开发的CG(C for Graphic)语言,从名字上我们就能知道,只是一门类C的语言,如果你接触过C语言或者C++,甚至是JAVA,C#那对他的基本语法一定不会陌生,CG语言他是跨平台的,他可以基于OpenGL也可以DirectX来运行,也就是说他是工作在DX和OpenGL上层的抽象语言,这三种语言在某些具体方面可能有性能和扩展性上的区别,但是对于背后的实质技术并无过大区别,我对GLSL和HLSL接触的不多,HLSL由于是基于DX的可能现在很多高端引擎都是用HLSL,GLSL的话优势可能在于跨平台吧.
  好吧我们只要关注我们的CG就可以了,有兴趣的同学可以自己去了解一下另外两种语言,说明一下由于CG是Nvida和微软共同开发的,所以CG上的很多标准和HLSL是兼容的,学起来有很多互通的地方.Unity
使用的并不是完完全全的CG语言,如果你看官方的API你会发现他的Shader分为三大类:
(1)Fixed function shader
固定渲染管线 Shader, 现在的使用已经很少了,一般用来做默认处理,以一种固定的模式去处理渲染流程,但是他完全使用ShaderLab语法让你很简单的去修改一些参数,功能有限,很多Unity内置的默认效果用的是这个Shader.(2)Surface Shader
不知道该怎么翻译,姑且叫表面Shader,这个Shader是Unity官方文档里用的最多的了,而且在国外很多的UnityShader学习教材里也很多用它来举例子,怎么说呢,这个Shader其实和第三种已经很像了,只不过你并不用全部把片段着色器代码自己来写,unity给你自带了很多封装好的,如果你想要自己写也可以,我个人感觉他和第三种最大的区别在于它的光照模型我们不能确定到底是外面哪个光源,我没试验过是否可以通过传外部参数来让解决.另外在Surface
Shader中的同一个SubShader中不可以使用多个Pass.(3)Vertex and Fragment Shader
这类是我主要要讲的Shader,很好很强大,定点着色器和片段着色器完全由我们自己来控制,这样子我们就能最大化使用我们掌握的东西,当然这类Shader也是最需要时间学习的.
我们来看一下GPU把3D物体渲染到屏幕上的一个简略的步骤(只是简单地有个印象),以后具体的地方会具体分析:  1,由于我们导入Unity的模型或者我们再Unity创建的模型,它们自身都有一个属于自己的坐标系,就像人一样,无论你站在什么方位,你总是知道自己的前后左右是什么方向,而这个前后左右就建立在你自身的坐标系,所以Unity里每一个模型并不知道其他模型的坐标系,那么为了方便计算和操作我们就要把他们转换到一个统一的空间坐标系里,前者是物体的模型空间,后者是世界空间,这是第一个空间变换:"模型空间"-&"世界空间",然后我们要确定我们在摄像机里具体能看到哪些东西,同样为了方便计算和处理,我们要再一次把物体从世界空间转换到摄像机空间,其实就是以摄像机为坐标系原点建立一个三维空间,经过这一步操作就能知道每一个物体从摄像机的位置来看他在什么方位,这是第二个空间变换:"世界空间"-&"摄像机空间".现在虽然知道了物体在相机空间的位置,但是还不能立刻进行渲染,为了方便后面要进行的空间裁剪和,屏幕坐标映射当然也是为了方便计算,我们要把摄像机空间内所有物体的坐标再一次转换到一个坐标范围是(-1,-1,-1)到(1,1,1)的正方体空间区域中,也就是整个空间变换中最难理解的"投影变换",这是第三个空间变换:"摄像机空间"-&"投影空间".接下来就是把投影空间里的物体映射到屏幕坐标上去.第四个空间变换(严格来说这不应该叫空间变换):"投影空间"-&"窗口空间".以上大概属于空间变换部分的内容,很多书本上的地方叫法和说法都不尽相同,理解大概意思即可.  2,显卡来处理图形的过程中一般有三个最基本的要素:点,线,面(一般指三角面),而在上一步中我们只是针对模型中单个顶点来一一处理,接下来我们就把经过空间变换剩下来的顶点(为什么说剩下来呢,因为上一步有一点没有提,就是在投影变换的过程中,
会进行一步剔除处理,把一些不在显示区域内的顶点根据一定规则过滤点,这样可以减少接下来的运算量)进行组装,组装成点,线,面.也就是所谓的图元装配,图元装配进行完之后,我们需要进行栅格化:大家都知道我们面前的屏幕是由像素矩阵构成的,而我们处理的模型只是由有限的顶点构成的,经过图元装配后形成的基本图元(点线面),我们要把它和屏幕上的像素区域对应起来,也就是进行像素填充,一般模型的每个顶点都会带有一些基本信息(例如,法线,位置,纹理坐标,颜色等),即一个三角面其实只有三个顶点是有基本属性的,而其他填充进来的像素区域是并不直接拥有这些基本属性的,他们的属性都是通过在顶点间差值计算得来的(其实上面提到的像素应该称为片元fragment).有些书籍中把图元装配也归到栅格化中,请注意.经过这些处理模型基本在GPU中已经形成了他所要绘制到屏幕上的样子了.不过这并没有结束.  3,经过上面的处理我们就仿佛得到了一个预备要绘制到屏幕上的临时数据区域,不过到底是将这些像素是否最终绘制到屏幕上,怎么绘制到屏幕上,还需要经过一些判断.制作游戏中最常见的现象,离摄像机近的物体要绘制在前面,会把离摄像机较远的物体挡住(不考虑半透明物体),如果没有某些判断的话,那如果GPU先渲染了离屏幕较近的物体,而后处理了离屏幕较远的物体,那么近的先画到屏幕上,远的后画就会把之前的覆盖掉了,这显然不是我们需要的效果(并不是所有引擎都可以自由的去控制物体的渲染顺序,即使可以控制,很多时候也十分麻烦,并不十分常用).所以说我们就需要在绘制的时候进行检测,上面这个问题使用的是ZTest(还有很多检测这里只提这一个,其他的以后遇到了再具体说),对于GPU来说拥有两个最基本的缓冲区:帧缓冲区和Z缓冲区(也叫深度缓冲区),这两个缓冲区都与屏幕上的每个像素一一对应,其中帧缓冲区对应着屏幕上的像素点的最终颜色,GPU最终都是通过把颜色写入这个区域来呈现在屏幕上的,而另一个深度缓冲区则存储着屏幕上每个像素的深度值,所谓的深度值就是离摄像机的远近(一般都被规范化为一个0~1的数值),数值越大说明离摄像机越远,刚才我们提到的ZTest就是通过将光栅化后的像素的深度值和当前屏幕上像素对应的深度值进行相应的比较,来绝定是不是把新的像素点覆盖掉原来的像素点(当然这并不是最终是否写入帧缓冲区的判断条件,还有一些其他判断),至于以什么模式来判断并无硬性要求,根据你具体的要求来选择判断方式.经过这一系列的判断和处理之后GPU会把最终结果写入帧缓冲区,我们会在下一帧看到刚刚处理过的最新画面了
没有更多推荐了,
加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!学习游戏渲染(Shader)的用处【unity3d吧】_百度贴吧
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&签到排名:今日本吧第个签到,本吧因你更精彩,明天继续来努力!
本吧签到人数:0成为超级会员,使用一键签到本月漏签0次!成为超级会员,赠送8张补签卡连续签到:天&&累计签到:天超级会员单次开通12个月以上,赠送连续签到卡3张
关注:87,074贴子:
学习游戏渲染(Shader)的用处收藏
1L我是真的不敢要!
有段日子没写东西了,这几天吧里有位 吧友@某君善卒在我帖子下面留了言询问关于Shader和工作相关的东西,想想这可能也是很多人的问题,便写了这篇博客。贴吧的格式一直是问题,我就节选几段粘在下面,大家有个大概理解,想看全文的可以去我blog看地址:Esfog/p/What_is_the_use_of_learning_GameRendering.html对了我随便弄了个网站,有待日后开发,有空可以去转转,现在还是一片空白。og.com
一.理解误区  不少客户端开发新手,甚至是老手做了好几年都不知道Shader具体是指的什么。有的同学读过一些书学会了怎么写Shader实现一些效果。但知其然,不知其所以然。常常把Shader等同于游戏渲染。这是不对的,Shader只是游戏渲染中的一部分,虽然是比较重要的一部分,但不可以偏概全。不少渲染书籍也都会在前一两章谈到渲染管线的相关内容,往往都是一笔带过,要想全面的了解,还是要系统的学习。
二.在工作中有什么用  国内基本一个游戏项目里,至少要有一个对渲染比较有了解的人吧。我以前做客户端的时候,团队里就专门有人负责渲染问题。最基本的需求,就是要实现一些特殊效果,比如说波光粼粼的水面,旗帜烧毁时的溶解效果,盖伦大招劈下来时候的气浪等等。虽然像Unity这样的引擎有很多资源可用,但还是有效果需要自己来实现的,看看这几年国内的手游市场,不少产品都在渲染上下了很大功夫,像《崩坏3》,《天下》。像3DMMORPG这样的游戏,如果渲染上没什么亮点,很难有竞争力。所以项目里总是要有人会的。
再有就是和美术人员对接,要实现各种渲染效果没有美术的支持是不可能的,但如果不了解渲染的相关知识的话,根本就没法和美术进行对接,比如你要他做个法线贴图,美术不会,而你也只是知道法线贴图可以用来增加模型细节,但是不知道法线贴图是怎么生成的,这样工作就没法进行了。再举个例子,玩过3DS口袋妖怪XY之后的版本你会发现里面各个宝宝的卡通渲染看起来很棒,而由于3DS的机能十分有限(老任的机能一向是最弱的),为了节省资源,每张贴图甚至通道都要物尽其用,设计的很巧妙,很显然这种贴图的使用方式不可能是美术突发奇想,而一定是在程序的指导下绘制的。
最后一点可能就是性能优化了,上线之前每个项目都要拼了命的优化性能,以便兼容更多的低端机型,特别是手游,Boss们往往是既要效果又要帧率。这段时间一般是比较痛苦的,像Unity这样用户庞大的引擎,网上有很多优化经验,很多书也会有专门章节来如何优化。像合并批次,减少特效透明重叠区域,降低阴影质量,改变lightMap分辨率,不要在Shader中使用AlphaTest等等,往往大家对这些都是知道的,不知道也至少听说过。但如果不知道背后的原理,不知道为什么这么做,那便是是隔靴搔痒,无法举一反三。遇到一些特殊的情况,就找不到思路了。如果能了解更多的渲染知识,那么优化起来会更加得心应手。
三.工作方向   有人问,是否有与渲染(Shader)相关的专门工作,当然是有的,我跟自己了解的大概分了以下几类:  1.专门负责渲染工作的客户端程序员  我在上面提到过的,一个团队里总要有几个人懂点渲染的,他们在团队里一般不写逻辑功能,专门实现各种渲染效果,并负责跟美术进行工作对接,在最后的项目优化时负责渲染部分的优化工作。有的公司还会专门成立一个部门来负责这部分工作,项目团队只负责逻辑开发,渲染效果和优化全部都由这个团队负责。这应该是最常见的一类了,这几年大家的水平应该都有所提高吧,我看很多Unity程序员招聘的时候都写着,会Shader有加分。不过这个“会”水分就很大了。  2.技术美术(TA)  这曾经是我比较神往的职位,不过自己美术实在太渣。有个前辈曾跟我水哦过:“TA至少要是50%的美术”。这个职位在国内是不常见,国外比较多。TA一般是属于美术团队的,或者是一个单独团队,不属于客户端程序。对于有TA的项目开发流程不太一样,项目一般会提出需求,而TA负责实现,TA可以简单理解为即会写Shader又会做模型的人。往往是对美术方面的的要求比程序方面的要求高,必须对整个美术工作流程都比较清楚。这样的工作流程做出的效果往往是效率比较高的,TA在制作的同时就考虑了美术效率的问题。  3.游戏引擎开发  此处指自研引擎的开发。不是说使用XX引擎开进行游戏开发。现在国内普遍都是在做手游,很多都在用Unity,还在使用自研引擎的公司实在是不多了。这个工作要求对渲染知识的了解就比较高一些了,不是说会写几个效果就可以的,必须对整个渲染流程有比较系统的了解。当然了游戏引擎不只是有渲染一个方面,还有比如资源管理,UI系统,物理系统等,想想自己动手开发(维护)个Unity,头都大,一般不太可能一人完成,引擎开发的团队一般都稍微大一些,由于引擎的目标用户是客户端程序员和美术,测试,而不是玩家,所以作为工具链的起点,必须保证引擎的稳定和高效,这就需要比较好的语言知识(市面上绝大多数引擎都是C++实现的)。  自研引擎的一大好处就是可以随便改,在性能优化的时候,由于能直接调试引擎源代码,也比较容易定位性能热点。有个问题就是,如果你是Unity程序员如果引擎本身有了Bug你就只能忍着,或者绕过它,但如果是自己的引擎,你就一定要查个究竟了。  4.大神之路  像龚大,余国荔,乃至卡马克这样的超级大牛,我就不清楚人家的具体工作了,但我想他们也一定是一步一个脚印走到那样的高度的。
瘫痪在床上一天啦,现在就滚去看api。。。
背后的交易
看了之后感觉受益匪浅,顶顶顶
unity微职位高端培训,随到随学/4对1辅导/闯关式学习;unity微职位高端培训,优选大牛老师授课,实时在线答疑,保证学习效果.
相当于流水线,传递给CPU信息让CPU去执行渲染操作,胡乱说的
登录百度帐号Shader的学习方法总结【unity3d吧】_百度贴吧
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&签到排名:今日本吧第个签到,本吧因你更精彩,明天继续来努力!
本吧签到人数:0成为超级会员,使用一键签到本月漏签0次!成为超级会员,赠送8张补签卡连续签到:天&&累计签到:天超级会员单次开通12个月以上,赠送连续签到卡3张
关注:87,074贴子:
Shader的学习方法总结收藏
一楼献给卡马克!
  最近网友candycat1992的新书Unity Shader入门精要出版了,估计万千的中国unity开发者又要掀起一波学Shader热潮了。我也想把自己这几年学习Shader的一些历程和心得记录下来。一来当给自己的学习做个记录,二来是给更多的后来人留些参考。  写之前先声明几点:  1. 本文标题中的Shader并不特指Unity Shader,本文也不涉及任何代码细节,仅是讨论学习方法。  2. 图形技术的水很深,我还只是个小学生,只是单纯的分享自己的学习历程,大神看到了别见怪。  3. 每个人的性格,思想都不一样,所以学习方法这种东西向来不是照搬照抄的,所以我说的不一定适合你,还需要自己取舍。
个人历程    容我讲讲自己学习Shader的经历,你会发现,入门并没有那么难,只要你肯下功夫。    毕业后的第一份工作就是从事Unity客户端开发,当然了作为新人也就是写写UI,作作逻辑。恰巧当时项目的一个同事W君有Shader的经验,就每周都挑两天下班后的时间给我们上课,从最开始的矩阵变换到他离职前最后一课辉光效果。因为大学里的图形学课基本上也没怎么太认真(现在很后悔呀)。也就是这大概十几节课,让我对图形渲染有了最初的认识。就从这段时间开始,我断断续续的开始了学习Shader的路。那时候国内还没有一本专门讲UnityShader的书。而我对图形渲染的认识也是很肤浅的,只能去网上找资料,看代码例子,问同事,恰巧我有一个同事Y君,是学图形的研究生毕业,所以很多事情都可以向他请教,所以他也算是我在这方面的老师了。也是他推荐我看的《GPU编程与CG语言之阳春白雪下里巴人》,以及《Cg教程_可编程实时图形权威指南》(后来第二本书我还想尽了办法弄到一本正版实体书收藏了)。就是这两本书,还有网上那些我已经忘却名字的很多前辈的分享,我开始一点一点的去了解Shader,了解图形渲染,渐渐的也就成了我的一个兴趣点。  到了第二年,工作上得心应手一些,我就花更多的业余时间在Shader上,一个问题想不明白就不停的想,直到能说服自己为止,也差不多就是那段时间郭浩瑜的那本《Unity 3D ShaderLab开发实战详解》出版了,要知道当初我和Y君可是每天都在关注出版进度,托了大半年终于出了,赶紧买来看。这本书现在看来别的不说,至少布局结构是极其不合理的,相当不适合新人,该详不详,该略不略。很多地方代码一扔,也不解释。不过,话说回来,因为我这人学东西如果一个地方看不懂就得想办法搞懂,所以这本书也让我知道了很多。这时候我也开始在Blog上写了第一篇Shader教程(2014年2月份,其实那时候自己也刚刚入门)。就这样边写边学,渐渐到隐藏在unityShader背后的图形渲染世界,不断的读书,写作,练习,我几乎是没有在项目里实际写Shader的,因为一般由Y君负责,但基本上所有的Shader我都会看,然后不理解的就要和Y君讨论弄明白。这样发现那段时间自己成长很快,尤其是写Blog,因为你要写给别人看,要讲的通俗易懂,还要剖析原理,写的每一句话都要负责,所以一定要搞懂。这期间还读了刘鹏翻译韩国人写的《计算机图形学-基于3D图形开发技术》,这本书其实很早就读过,那时候实在是水平不够,看不懂还怨人家翻译差,后来再看了解了不少东西。
  大概一年前,很巧合有一个机会来到了现在的公司进行了游戏引擎的开发。换工作之前也是想了很多,自己的图形渲染知识都是工作后自学的,之前两年的工作基本都是做Unity的逻辑开发工作,而且写引擎要用C++。当时还有很多机会,继续做Unity的开发工作,但还是横下心来做引擎,因为这是我这几年一直的想法,不论怎么样,有这机会就抓住,即使发现自己不适合,也会是一段很好的锻炼经历。笔试面试最后也过了。也算是对自己之前两年默默努力的一个回馈吧。  做引擎开发者一年以来,得以有机会近距离看到游戏引擎的原理,对OGL也有了更好的了解。也知道了所有的游戏引擎核心原理没什么大的不同。但这一年来,由于没有再接触Unity,所以blog里的Shader教程长期没有更新。最近又打算重新开写了。因为渲染这东西重要的是原理和引擎是无关的。有时间我会继续更新。  好吧,啰嗦了这么长(谁爱听啊!)。下面进入正题:
正确的理解Shader    很多人对Shader的理解都不同,特别是初学者,往往对Shader的认知是很肤浅的。大都认为Shader就是UnityShader,就是Unity引擎里一个用来创造画面效果的一种文件格式。    这也是我当初刚接触Shader的时候的认知。这当然是一叶障目,不见泰山了。如果要学好Shader,用好Shader,就不能只停留在了解和使用UnityShaderLab的语法的层次。这是远远不够的,因为当你深入学习的时候你就会发现,由于你不理解Unity为你提供的某一个ShaderLab参数的具体原理,导致你也不能正常使用,即使是可以使用也不能举一反三。    当然作为一个初学者,认知上的缺陷是难免的,但希望你在看到了这篇文章后,能看的更深远一些。Shader不只是指Unity的ShaderLab,也并不代表图形渲染的全部,它只是渲染流程上的一环,或者说是关键的一环。是很多很多步骤的结合作用才最终把画面正确的呈现出来。如果你真的想吃透Shader,用好Shader,这些东西都是你要去掌握理解的。那些渲染管线流程图什么的我就不拿过来粘贴了,本文只做学习方法总结,不讨论具体技术。    综上,饭要一口一口吃,知识也肯定是一点一点学,循序渐进持之以恒,但如果一开始就能比较全面和整体的理解Shader的定位,那么也会在学习过程中,也就不会太自以为是,学的太肤浅。
  有了书,打开引擎开始学,你需要的就是耐心和恒心了,我想学其他的知识也是一样吧。Shader的水很深,做好打持久战的准备,不断的练习,不断的尝试,不断的总结。    在学习过程中遇到问题是必然的,合理的使用搜索引擎,去论坛和站点和大家交流。保持一颗谦卑的心,别人总有比你强的地方,虚心的学习,慢慢的积累。如果你身边有一个可以请教的人,那就太好。就像我遇到Y君一样。    当你觉得自己入了一点门以后,就可以尝试着分析项目里的Shader代码了,结合着游戏中的实际效果,看看代码里用到了哪些你不知道的技术,或者说有什么你觉得不合理的地方。如果有机会,就尝试着申请在项目里实际写Shader的工作。这样的锻炼是难得的。可惜我当初做Unity时候没有这样的机会。    起步的一开始一定会是有些无从下手的感觉,度过这段时间,找到适合自己的节奏,就会有个很快速的学习积累过程。要坚持。
如何提高    刚接触Shader时候会有个迷茫期,其实当你学了一段时间,感觉自己学到了很多东西以后,也会有个迷茫期,不知道怎么进一步的提高自己,感觉自己该掌握的都已经掌握了,但是又写不出什么东西。    正如我在前面说的,我们总觉得自己好像该学的都学了,又感觉哪里好像没吃透。这说明我们还是没有触碰到我们学习内容的全貌,才只看到整个知识体系的冰山一角。所以一定会经历这个从觉得自己什么都会了,到感觉自己什么都不会了的转变。这个转变是必要的,它意味着你将了解到更深更广的知识。    废话不说了,一般我们入了门以后还要去理解更多的知识,我总结一下,大概有几方面:  1. 首先要对渲染管线有个透彻的了解,至少要知道每一步发生了什么。很多学Unity从业者说会Shader也就只停留在前面那个语法层次了。如果连渲染管线都不知道,就不要再往简历写会Shader了。这方面的资料很多,candyCat1992那本书以及《计算机图形学-基于3D图形开发技术》都有,还有Trace大神搬运过来的一套教程。了解渲染管线,能让你对Shader里的很多用法都能有更深入的认识。
2. 去学习OpenGL或者DirectX的知识(如果你经历足够可以双管齐下),看好,不是说HLSL或者GLSL这些Shader语法,而是OGL和DX。了解了渲染管线之后,再去了解一下图形API,试着动手写写,你才能真正的理解渲染管线的实际流程,以及那些被游戏引擎所隐藏起来的渲染逻辑。你也就能了解到Unity中的FBX模型里到底都放了什么数据,场景模型上的MeshFilter组件和MeshRenderer组件都是起什么作用的,等等。对这些图形API有了一定的掌握,不仅可以对渲染流程有更深入的了解,甚至可以自己开发一个简单的渲染引擎了。这方面的学习资料就太多了,学OGL就是红宝书,DX的话自然就是龙书。  3. 再有很重要的一块就是图形算法,想要在通过Shader做出各种惊艳或者特殊的渲染效果,可不是只学会写Shader语法就可以做到的,就像大学里学程序设计后还要学习算法是一样的,图形渲染中也有大量的算法,从最基础的光照算法,到HDR,FXAA,Toon。再到最近次时代流行的PBR等等。有很多已经很成熟的算法,但这些算法不一定完全适合你的项目或者平台,所以必须了解他们改进它们,甚至研究出新的算法。这个过程估计是最痛苦的了,因为国内的资料不多,讨论的人也不多,算法中往往还涉及到大量的数学和物理知识。如果能持续不断的坚持学习和实践,那你也许就会是万千游戏开发大军中的的佼佼者。这方面的书虽然不多,基础类的我就不说了,很多书上都有,有一些大部头的经典如:《GPU Gems》系列,《Real-Time Rendering》,《Physically Based Rendering》。国内能读完这些书的人应该是是很少的。我自己还不到这个层次,不过也准备要开始塌下心来学习。还有一个论坛OpenGPU,也推荐给大家,不过这个不是入门向的,里面的大神太多了,不要在里面提太没营养的问题,会被鄙视的。
4. 补补数学再学点物理知识吧。线性代数的重要性就不用我说了,如果能力和精力允许的话,就多补一补,我这数学渣就不多说话了,不过我也有时间会学一学的。这方面也有一些好的资料。我手头就有一本《Mathematics for 3D Game Programming and Computer Graphics》。这个我就不多说了,没事多学学,省着用到了挠头。  ...    其实还有很多,比如把C++好好学一学,不过已经不要紧了,路很长,要怎么走还是要靠你自己。我也只是个一定意义上的入门者,不想误导别人。大家一起提高,互相帮助吧。
最后几句心里话    其实无论别人看别人多少文章,多少教程,多少书,学习的路上往往都是没有捷径的,总要经历些坎坷和挫折。否则牛人怎么才是牛人呢,自己这几年的学习历程也是经历了很多,写这篇文章并不是能给大家提供什么捷径和速成法,只是给大家些勇气,希望大家少一些磕磕绊绊。像我这样的都能入个门,大家也一定可以的。    也希望大家,能乐于分享,让大环境更成熟起来,也希望能涌现更多的牛人。
unity微职位高端培训,随到随学/4对1辅导/闯关式学习;unity微职位高端培训,优选大牛老师授课,实时在线答疑,保证学习效果.
还是老样子,贴吧如果你看着不舒服,可以去我的blog看希望对大家有帮助
还是老样子,这里排版如果你看着不舒服,可以去我的blog看:http://_Shader.html希望对大家有帮助
挺长时间没在贴吧见到楼主了呢,不过楼主帖子质量一如既往的高
顶!卤煮棒棒的。能请教你一下做海洋方面的问题那?还有潜艇的特效!
啪啪啪,鼓掌,自己正打算学下图形学和shader,可以参考楼主提供的方法和资料
我自己封装了3d 数学库
包含向量 矩阵 射线 平面,以及它们的方法。那学习shader 不是快的很?
楼主我想请问一下, ShaderForge你一定用过吧? 请问如果我选择在我的职业生涯中一直不去学习Shader而靠着ShaderForge死撑, 有什么弊端吗? 我目前的个人感觉是ShaderForge应该可以说能实现绝大部分想要的效果, 那些实现不了的效果肯定不是学习Shader一个月两个月就能写出来的高级效果, 而且这种高级效果一般都可以去AssetStore里面找. 所以一直没有提起学习Shader的欲望, 或者说动力. 感觉并不急切需要这方面的知识, 求意见.
高手!辛苦了写这么多!
你好,我想将unity3d制作的程序发布到windows,但是点击PC这个选项出现如图的问题发布不了,请问怎么解决?
楼主的那句“跳出引擎去学习本质”很有同感
本贴可以申精啊,居然看的人那么少。感谢小吧的分享,我看了candycat的书,确实现在感觉迷迷糊糊的,似懂非懂。看着代码能理解意思,让我自己写又懵逼了。
下个周就要开始学计算机图形学了,多谢楼主大大的建议。不过楼主大大可以告诉我unity的工作方向吗?我想更了解一点,然后把目标更明确一点。比如楼主之前刚开始是有那些日常工作,现在又有那些日常工作。多谢楼主大大!
我支持下楼主的分享心得
很棒   --^_^—     .     .一只种花家的兔子?
还行吧,shaderforge基本都能实现了,比如扭曲透明,高亮油腻,3s材质
登录百度帐号

我要回帖

更多关于 unity3d shader 的文章

 

随机推荐