显卡按照老板的要求将图形画好,交给vga或者其他接口,传输到屏幕上。
假如显卡的能力很强,CPU让它一秒钟出三幅图,显卡能画五幅图,那剩下的时间显卡可以休息休息,功耗自然降低。
但如果显卡的能力不够,那就麻烦了,CPU让它一秒钟画三幅,显卡拼死只能画一幅图,这样的结果就是卡顿。
解决的办法就是换一个能力强的,或者降低一下画面的难度,以匹配显卡的能力。
但显卡到底是怎么画图呢?
这就涉及到芯片了。
华芯科技的第一代显卡,王岸然没有采用9102年的GPU流处理器的统一渲染架构,那玩意用在现在,那是太先进了。
没有必要,他选择的是一代神卡gf2采用的“顶点渲染架构。”
什么叫顶点渲染架构?看看在该渲染架构下GPU是如何画一幅图形的。
CPU向显卡发出作一个立方体的指令。
在顶点渲染架构下,先由该架构中的顶点着色器,将图形分成若干个小三角形,由三角形组成几何骨架。
这就涉及到一个抗锯齿的问题,因为显卡的工作是不画线的,线的存在,完全是不同材质颜色三角形之间的自然分界,而贴图三角形在分辨率低的情况下,自然有锯齿感。
解决的办法,就是在相邻材质的贴图三角形,由大三角形细化成小三角形,虽然可以提升显示效果,但也大大加重显卡的负担。
几何框架形成了,下一步就是在着色管线中的作色器进行涂色,这就像画漫画,在用铅笔勾出线条后,用水彩笔,将手上的黑白线条画,变成彩色图像。
这一道工序完成了,基本上图像也出来了,但还不够。
3d图像的追求是要求逼真,尽量和现实贴近。
但怎么和现实贴近呢,这就涉及到一个纹理处理单元。
什么叫纹理处理单元,就是现实中选取混凝土墙,沥青道路,青草、河流等典型图块,预先以电子信息的形式,存到显卡的纹理缓存中。
需要使用的时候,纹理处理单元直接从缓存中调取,然后贴到目标三角形上。
经过这一番处理,一个电脑生成的图形全部完成,显卡再按照CPU的要求,传到显示器上,接着再处理下一幅图形。
原理很简单,谁都能明白,但真的要实现确需要大费周折。
王岸然将整个项目分为五个组。
第一个组负责接口设计,在pcl接口标准下,识别CPU发出的指令,接收CPU通过总线传输过来的数据,并将数据初步加工成各管线识别的数据,放入显存。
第二个组负责顶点管线设计单元,将接口传输过来的数据,生成几何框架,并负责将生成的数据传输到顶点着色单元。
第三个组负责顶点着色单元,第四个组负责纹理处理单元。
而最为重要的五组,控制单元的设计,从各处理管线设计的个数,物理布局,各单元之间的通信,各单元调用内存的算法,显卡资源的调配等。
王岸然不敢假手他人,自己独自负责,当然为了培养新人的角度,王岸然选配了三个副手。
科院电子自动化研究生徐浩,科院数学系季小青,清大微电子研究生杜鹏。