上次已经绘制过基本图元了, 这次只不过要贴张图而已.....
本来我想用Graphics的Model渲染流程来做, 不过这一层太高级了, 都是什么场景管理资源映射之类的
做低级的事情, 就要用低级的API嘛
图形渲染的底层是CoreGraphics, 这个层我不打算再单独写(翻译)一篇了, 因为都是Direct3D概念的一些抽象. 也就是说D3D用熟了基本上一看就明白(用GL的我就不清楚啦, 嘿嘿, N3的作者都放弃用GL去实现@_@).
还记得D3D Tutorial中的Textured例子不? 需要的东西有带纹理坐标的点, 纹理. N3中也一样, 不过, 这里没法用固定管线了.
N3的设计的时候就放弃了固定管线(多么明智呀, 别喷我-_-, 我只会shader.......), 所以在这之前我们要先写一个shader来进行绘制.
因为我们只是进行简单的演示, 就尽量简单了, 写一个2D的纹理绘制, 你可以用来做UI:
值得一提的是CullMode =CW, 为什么? 因为N3用的右手坐标系, 这点又跟D3D不一样了........为什么呢? 难道写MAYA跟MAX的插件的时候比较省事?
还是要跟上一次一样设置顶点格式并载入VertexBuffer:
纹理的创建其实跟顶点差不多, 因为它都是属于资源的一种, 详见Nebula3资源子系统
shader的加载跟上一次一样, 只是参数不同:
绘制嘛, 当然改成矩形了, 图片可贴不到一跟线上:
上图: