Cocos Shader入门基础一:前言

看过麒麟子Cocos Creator 3D编程相关文章的朋友应该都知道,麒麟子特别喜欢推荐大家看《OpenGL编程指南》和《3D数学基础:图形与游戏开发》这两本书。并把这两本书放到了Cocos Creator 3D研究院QQ群共享,作为入群必读资料。

麒麟子一直认为,想要玩转3D引擎的话,光是会用API是不行的,必须掌握必要的计算机图形学基础和3D数学基础。

但随着Cocos Creator 3D版本的逐步完善,使用3D版本的C友们也越来越多。一些细节问题逐渐浮现出来。下面是一些C友给麒麟子的私信留言。留言五花八门,麒麟子摘抄了一些,作为FAQ供大家阅读。

第一位出场的C友,是一个经常换头像的小伙子。所以就不能通过头像来描述他的气质。他有一个特点,就是说话的时候,喜欢以带口字旁的字结束,比如:啊,吗,吧,哦,嗯,呢。我们就称他C友1吧

C友1:子啊,你说的OpenGL编程指南我看完了,但还是不会用Cocos Creator 3D。那个材质是几个意思啊,OpenGL书上没有这些呢?

麒麟子:书上的例子有一个个敲吗?

C友1:前面的都敲了,后面的只是流程上增加了一些东西,就没有敲。总想着后面能够找到材质,effect之类的东西。

麒麟子:材质可以看作是渲染一个模型所用到的渲染状态、贴图、shader、shader常量参数的集合。是一个抽像的概念,在引擎中的材质文件其实就是保存了这些状态。它对应的就是你Opengl中那堆状态设置,纹理绑定和uniform设置的代码。

C友1:那要怎么用?

麒麟子:材质是effect的实例,新建一个材质,指定想要的effect 和technique,设置好相关参数就行。引擎在使用的时候,会加载这个材质文件并生成一个Material对象实例。

C1友:哦了,我再看看吧。

第二位出场的C友,有点愤青。这也不怪,江山代有才人出,性子刚强一点没什么不好。平时说话总是喜欢提到太阳和一些花花草草的东西,我们就称他C友2吧。

C友2:****,什么情况,材质还不让改了,锁着的。

麒麟子:???,兄台何以如此鸡冻,不急,慢慢说。

C友2:我在场景里放了一个Plane,想要调整它的颜色,发现调不了啊。

麒麟子:默认材质是所有几何体都要用的,所以编辑器里不让改。

C友2:辣鸡,人家Unity3D就可以改。

麒麟子:咦,Unity3D可以改?你要不先去看看再来喷?

C友2:不管U3D可不可以改,告诉我Cocos Creator 3D里面怎么改。

麒麟子:推荐你看的基础书你看了的话,应该很好理解为什么不让改。

C友2:哪有哪么多时间看书,你就告诉我怎么才能改得了。

麒麟子:你得新建一个材质文件,然后把这个材质给你的Plane就OK了。也可以在代码里面改获取ModelComponent,然后.material.setProperty

C友2:真麻烦,还要用代码。人家U3D就不需要代码。

麒麟子:哥,我错了,不该提代码的事。你新建一个材质文件,然后把这个材质给你的Plane就可以改了。

C友2:早说嘛,我去试试。

麒麟子:嗯,哥您慢走。别摔了。

第三位出场的C友,就是传说中的BUG专业户,开口一般就是:我又发现一个Cocos的BUG,******。最后发现是自己的问题后,又会恍然大悟道:原来如此!我们就称他C友3吧。

C友3:大大,我又发现一个Cocos的BUG。不知道你有没有遇到过?

麒麟子:嗯?说说看。

C友3:我今天试了一下,用代码设置材质的参数,结果我一设置,场景里的物体就都变了?

麒麟子:你是想都变,还是只有一个变?

C友3:只想变一个,鼠标选中某个物体的时候,这个物体变颜色,其他都不变。

麒麟子:我猜你是用的sharedMaterial.setProperty函数。

C友3:嗯啊,还有别的函数?

麒麟子:函数没错,只是不应该用shareMaterial,要用material。

C友3:不是说尽量用sharedMaterial吗,论坛有人说 material会创建新的材质实例,影响批处理的性能。

麒麟子:嗯,话是没错,但sharedMaterial对应的就是你的材质文件。所有使用同一个材质文件的对象,都会跟着修改。

C友3:我X,对对对,明白了。

第四位出场的C友,真的是勤奋好学。文质彬彬,学习能力超强。我们称呼他C友4吧。

C友4:老师,伴随矩阵在3D里面用在什么地方啊?我想学一下。

麒麟子:。。。,暂时没想出来用在哪里。

C友4:老师,共轭四元数用在哪个地方呢?

麒麟子:。。。,一般情况下用不到。

C友4:老师,线性代数我都看完了,但发现3D游戏最多就用到4X4矩阵和乘法。

麒麟子:嗯,对啦。就是这样的。矩阵只是工具,能够更方便地做向量叉乘和点乘。你就当是向量叉乘和点乘的批处理吧。

C友4:哦,那意思是,我白学了一堆用不上的?

麒麟子:也不是,至少经历了别人没经历的人生嘛。

C友4:。。。。

上面位C友可以说是很典型的代表。

C友1:挤出业余时间学习了OpenGL等基础,但无法和Cocos Creator 3D对应起来。

C友2:实干派,根本就不想学基础,只想掌握Cocos Creator 3D的使用技巧。

C友3:理论基础和图形都棒棒的,只是缺少一些使用上的经验。

C友4:学霸型,但会经常学一些不常用的知识。

经过反复思考,麒麟子就有了写Cocos Shader入门基础教程这个想法。

围绕Cocos Creator 3D进行材质方面的基础科谱。

对于想学基础的人和不想学太多基础的人,都能够学以致用。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 217,509评论 6 504
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,806评论 3 394
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 163,875评论 0 354
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,441评论 1 293
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,488评论 6 392
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,365评论 1 302
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,190评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,062评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,500评论 1 314
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,706评论 3 335
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,834评论 1 347
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,559评论 5 345
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,167评论 3 328
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,779评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,912评论 1 269
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,958评论 2 370
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,779评论 2 354

推荐阅读更多精彩内容