前言
就是对最近使用dx做一个感慨
跟DX的比较
没用过DX,所以没得比较。
使我顿悟的时刻
当我看shader代码的时候,我是懵逼的,跟之前想的完全不一样,为什么不能打印log啊。明明只是输出了一个颜色,为什么颜色会到处不同……
因为最近在用opengl写播放器界面,了解了不少opengl的东西。
之前听说过并行编程会使用opengl,当时不懂,现在知道原因了。
这本书里的一句话,使我豁然开朗。
Shaders 也是一系列的指令,但是这些指令会对屏幕上的每个像素同时下达。
也就是说,你的代码必须根据像素在屏幕上的不同位置执行不同的操作。
就像活字印刷,你的程序就像一个 function(函数),输入位置信息,输出颜色信息,当它编译完之后会以相当快的速度运行。
shader是对每一个像素都执行一次main里的函数,从这里就可以看出。如果打印log的话,那该是多么恐怖的一件事。
opengl语法的吐槽
真的很烂。
不知道它是是采用c语言的原因,还是架构设计导致的这个问题。总之是不够优雅。
这里插播一句,csdn的广告打得有点恶,关键字自动加了链接。
未完待续……