kanzi&opengl杂谈

最近有幸总结了一下kanzi中opengl的东西,实际比较重点的也就是shader部分,对于其他部分,这里也会简单的说,但是具体的功能作用就要自己下来慢慢研究了

一:引言

本文章主要介绍kanzi和opengl之间的一些问题,可能会比较杂,因为很多东西也无法预测他们具体是如何结合,故我们会以kanzi为主,在kanzi的基础上介绍opengl的一些东西。

通过kanzi help doc中的opengl接口,我们可以了解kanzi也是支持modern opengl,故老的opengl接口是不支持的。具体接口可见<system/wrappers/kzs_opengl.h>

 

这里的东西比较杂,我们不会具体的说,这里会分几个大块来针对性的说明。

 

二:具体介绍

一:着色器

一:shader(着色器)

着色器(Shader)是用来实现图像渲染的,用来替代固定渲染管线的可编辑程序。其中Vertex Shader主要负责顶点的几何关系等的运算,Pixel Shader(Fragment Shader)主要负责片源颜色等的计算。

着色器替代了传统的固定渲染管线,可以实现3D图形学计算中的相关计算,由于其可编辑性,可以实现各种各样的图像效果而不用受显卡的固定渲染管线限制。

目前比较流行的Shader语言除了GLSL之外还有HLSL,RM等,当然,我们目前主要使用GLSL。

Opengl的绘图管线

 

当然,这部分opengl的部分这里只是简单介绍。我们只需知道整个工作流程即可。

 

  1. 准备顶点数据:

在CPU中进行。这里会定义一些VAO和VBO,他们包含了每个一些顶点数据的信息,在shader中的体现即attribute。

在kanzi中,我们定义的EmptyNode2D或者Image2D...在这部分的体现即会准备不重复的4个点即重复的6个点,构成2个三角形。然后会将这些点绑定到VAO或者VBO中,发送给GPU。

 

  1. Vertex Processing

调用Vertex Shader处理顶点数据信息。这个阶段会接受传递过来的attribute数据作为输入,然后通过一些转换后输出。每个顶点都是1对1。

Kanzi中我们可以看到attribute属性的有kzPosition,kzTextureCoordinate0及其他。

 

  1. Primitive Assembly

图元装配:即把vertex shader输出的顶点数据集合到一起,并把它组合成一个图元的过程。这个输出的类型由用户决定,一般输出的是三角形,这个取决于你drawcall的类型。

 

  1. Geometry Shading: 这个目前不做介绍,它即对Primitive Assembly输出的图元处理后再输出图元。

 

  • 5
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值