Android:Open GL ES 中的 Uniform、mat4 和 vec4 是什么意思?

标签 android opengl-es embedded shader

在此代码中(来自 Android Developer 网站):

private final String vertexShaderCode =
"uniform mat4 uMVPMatrix;   \n" 
"attribute vec4 vPosition;  \n" +
"void main(){               \n" +
" gl_Position = uMVPMatrix * vPosition; \n" +

"}  \n";

uniformmat 4 是什么意思?

attributevec4 是什么意思?

最佳答案

  • Uniform 是每个绘制调用设置的值。例如,您可以为绘制的整个形状设置颜色,并且对于所有着色器调用,统一值将相同。这与 attribute 相反,例如,它是每个顶点的,或者具有 var 的,它是每个 fragment 但必须在顶点着色器中设置。
  • mat4 是一种表示 4x4 矩阵的类型。它由 16 个浮点值组成。这意味着它需要作为 float[16] 类型或包含至少 16 个浮点值的 float* 指针传递给着色器。
  • attribute 表示将传递给每个顶点的值。对于每个属性,您必须绑定(bind)其 id,启用它并设置指向 CPU 属性的指针。每个顶点的值将不同。一些常见的用途是位置、纹理坐标、法线、顶点颜色......
  • vec4 是一种表示 4 维向量的类型。它由 4 个浮点值组成。它可以用于很多事情,例如位置、法线……甚至颜色通常都是 vec4 类型。

关于Android:Open GL ES 中的 Uniform、mat4 和 vec4 是什么意思?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28959545/

相关文章:

iphone - iOS、iPhone、iPad (OpenGL ES) 是否支持 PBuffer?

opengl-es - 是否可以从顶点着色器读取数据?

ios - 在 OpenGL ES 1.1 中绘制二维三角形时如何定义顺序?

c - 卡在 C 指针结构中

java - 上下文菜单与 TabHost 问题

android - 将数据从 React Native 导出到 Native

android - 如何以编程方式启动 "Google Play Games Profile"游戏页面

c++ - 如何使用 vApplicationTickHook() 函数测量 freeRTOS 中的任务执行时间?

rust - 如何在没有标准库的情况下旋转向量?

android - 从ImageTarget Android获取模型对象