shader学习笔记(二)

GPU 编程语言

shader language 的发展方向是设计出在便捷方便性方面可以和C++、JAVA相比的高级语言,让GPU变成更加灵活可控,同时利用图形硬件的并行性,提高算法的效率。

有三总语言可以编写

HLSL (High Level Shading Language )

GLSL (OpenGL Shading Language)

CG  (C for Graphic)

OpenGL 简介

GLSL (OpenGL Shading Language)

OpenGL(Open Graphics Libary)是一个定义了跨编程语言,跨平台的编程接口规格的专业图形程序接口,它用于三维二维图像,是一个功能强大,调用方便的底层图形库,OpenGL 是恒业领域中最为广泛接纳的2d/3d图形API,其自诞生至今已经催生了各种计算机平台及设备上的数千优秀应用程序,它独立于视窗操作系统或者其他操作系统的, 亦是网络透明的,在包裹CAD,内容创作,能源,娱乐,游戏开发,制造商,制药业及虚拟现实等行业领域中,OpenGL是个与硬件无关的软件接口,可以在不同的平台如WIndows,Unix,Linux,MacOS,OS/2之间进行移植,因此,支持OpenGL的软件具有很好的移植性,可以获得非常广泛的应用。

OpenGL的发展一直处于一种迟缓的态势,每次版本的提高新增的技术不反很少,大多只是对其中部分作出修改和完善,1992年7月,SGI公司发布了OpenGL1.0版本,随后义与微软公司共同开发了Windows NT版本的OpenGL ,从而使一些原来必须在高档图形工作站上运行的大兴3D图形处理软件也看恶意在微机上运用,1995年OpenGL的1.1版本面市,该版本比1.0的性能有许多提高,并加入了一些新的功能,其中包括改进打印机支持,在增强源文件中包裹OpenGL的调用,顶点数组的新特性,提高顶点位置,法线,颜色,色彩指数,纹理坐标,多边形边缘标示的传输速度,引用了新的纹理特性等等OpenGL1.5 又新增了“OpenGl Shading Language” ,该语言是 "OpenGL 2.0"的底核,用于着色对象,顶点着色以及片段着色技术的扩展功能。

DirectX 简介

  DirectX,(Direct eXtension ,简称 DX) 是由微软公司创建的多媒体编程接口。由C++编程语言实行,遵循COM,被广泛使用WIN,XBOX, 电子游戏开发,并且只能支持这些平台,足心版本为DX12 ,创建在最新的Win10系统,DirectX 是这样一组技术:它们皆在使基于Windows的计算机成为运行和显示具有丰富多媒体元素的应用程序的理想平台,DirectX包括安全和性能更新程序,以及许多涵盖所有技术的新功能,应用程序可以通过使用DirectX Api来访问这些新功能。

   DirectX加强3D和声音效果,并提供设计人员一个共同的硬件驱动标准,让游戏开发者不必为每一品牌的硬件来写不同的驱动程序,也降低了用于安装已经设置硬件的复杂度,从字面意义上说,Direct就是直接的意思,而后面的X则代表了很多的意思,从这点上可以看出DirectX的出现就是为了为众多软件提供直接服务的。

    举例来说,以前在DOS下的玩家游戏时,并不是安装上就可以玩了,他们往往首先要设置声卡的品牌和型号,然后还设置IRQ,I/O DMA如果哪项设置的不对,那么游戏声音就发不出来,这部分设置不仅让玩家伤透脑筋,对游戏开发者来说更为头疼,为了让游戏能够正确运行,开发和必须在游戏制作之初,把市面上所有对声卡硬件数据都收集过来,然后根据不同的API来写不同的应用驱动程序,这对于游戏制作公司来说,是很难完成的,所以在当时多媒体游戏公司很少,微软正是看到了这个问题,为众厂家推出了一个共同的应用程序接口   DirectX。只要游戏依照DirectX 来开发的,不管显卡,声卡型号如何,统统都能玩,而且还能发出比较好的性能,当然前提是使用的显卡,声卡驱动程序必须支持DriectX才行

CG 简介

GLSL (OpenGL Shading Language)

CG  (C for Graphic)

cg语言(C for Graphic) 是为GPU编程设计的高级着色器语言,cg极为保留C语言的大部分语意,并让开发者从硬件细节中解脱出来,CG同事也有一个高级语言的其他好处,如代码的易重用性,可读性得到提高,编译器代码优化,CG是个可被OpenGL和DIrcet3D广泛支持的图形处理器编译语言,CG语言和DircetX 并不是同一层次的语言,而是两者的上册,CG语言是运行在OpenGl和DircetX标准顶点和像素着色的基础上的,CG由NVIDIA(英伟达)公司和微软公司相互协作在标准硬件光照语言和语义上达成了一致的开发,所以,GLSL和CG其实是同一种语言

      GLSL与HLSL分别基于OpenGL和DircetX 的接口,两者不能混用,事实上OpenGl和DIrcetX一直是冤家对头,争斗良久,OpenGl在其长期发展中积累下的用户群体庞大,这些用户选择学习GLSL学习,GLSL继承了OpenGL良好的移植性,一度在unix等操作系统上独领风骚,但GLSL的语言体系自成一家,微软的GLSL移植性较差,在win平台上可所谓一家独大,这一点在很大程度上限制了HLSL的推广和发展,但是HLSL用于DX游戏领域却深入人心。

总结 unity shader就是用CG语言编写,CG就是在微软的DX和OpenGl基础上的高级语言,这样unity的平台发布种类就会很多,android,ios,windows,MacOS,xbox,web,等等

可以在编辑器点击一个 shader文件看到这里显示出来

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

推荐阅读更多精彩内容