文档章节

understanding shader mat4 * vec4 calculation​

a
 aspirs
发布于 2016/02/01 11:39
字数 227
阅读 169
收藏 0

this blog from: http://stackoverflow.com/questions/13745334/understanding-shader-mat4-vec4-calculation

understanding shader mat4 * vec4 calculation

can someone confirm following calculation, please? :)

in normal android opengl shader the computation:

mat4 a;
vec3 p;

vec3 pos = (a * vec4(p,1.0)).xyz;

would be calculated like this:

pos.x = a0 * p.x + a1 * p.y + a2 * p.z + a3 * 1.0;
pos.y = a4 * p.x + a5 * p.y + a6 * p.z + a7 * 1.0;
pos.z = a8 * p.x + a9 * p.y + a10 * p.z + a11 * 1.0;

is this correct? or did I miss something? every help is highly appreciated.

answer1:

Ok actually I've found a reliable source: http://www.khronos.org/files/opengles_shading_language.pdf

vec3 v, u;
mat3 m;

And

u = m * v;

is equivalent to

u.x = m[0].x * v.x  +  m[1].x * v.y  +  m[2].x * v.z;
u.y = m[0].y * v.x  +  m[1].y * v.y  +  m[2].y * v.z;
u.z = m[0].z * v.x  +  m[1].z * v.y  +  m[2].z * v.z;

Therefore

vec3 v, u;
mat4 m;

And

u = (mat * vec4(v,1.0)).xyz

should be equivalent to

u.x = m[0].x * v.x  +  m[1].x * v.y  +  m[2].x * v.z + m[3].x * 1;
u.y = m[0].y * v.x  +  m[1].y * v.y  +  m[2].y * v.z + m[3].y * 1;
u.z = m[0].z * v.x  +  m[1].z * v.y  +  m[2].z * v.z + m[3].z * 1;

Please correct me if I'm wrong though.

本文转载自:

a
粉丝 0
博文 39
码字总数 892
作品 0
深圳
私信 提问
如何把一个标准 GLSL 例程改写为 Codea shader

如何把一个标准 GLSL 例程改写为 Codea shader 概述 这里所说的标准 例程指的是 中使用 编写, 由 和 组成的 . 在 中有很多优秀的 例程, 它们一般通过 来调用, 我们现在希望把它们改写为 , 也...

FreeBlues
2016/07/17
17
0
xcode 7.2.1 新建cocos2d项目 运行报错

Warning: Error creating LLDB target at path '/Users/sweetieTAM/Library/Developer/Xcode/DerivedData/GP_CrazyForest_v2.0-ffxxxkrfizurpfgqrvqonkczmogo/Build/Products/Debug-iphonesi......

沙悟靖_
2016/02/21
1K
1
[Qt和GLSL的笔记4] GLSL基本语法和数据类型

时间:2017年4月21日(大三下学期) 作者:RyuZhihao123 (Northwest A&F University,985/211) Qt和GLSL开发4 - GLSL基本语法和数据类型 写在前面: 虽然说这一部分是GLSL中比较常见的内容。...

Mahabharata_
2017/04/21
0
0
vsh(顶点着色器),.fsh(片段着色器)

AGLKPointParticleShader.vsh //顶点着色器。 // VERTEX ATTRIBUTES attribute vec3 a_emissionPosition; //位置 attribute vec3 a_emissionVelocity; //速度 attribute vec3 a_emissionFor......

iOS技术者
2017/09/17
0
0
翻译:探索GLSL-用几何着色器(着色器库)实现法线可视化

翻译:探索GLSL-用几何着色器(着色器库)实现法线可视化 翻译自: Exploring GLSL – Normal Visualizer with Geometry Shaders (Shader Library) - 译者: FreeBlues 概述 亲爱的读者们, 我回来...

FreeBlues
2016/07/26
24
0

没有更多内容

加载失败,请刷新页面

加载更多

如何使用 rsync 备份 Linux 系统的一些介绍

备份一直是 Linux 世界的热门话题。回到 2017,David Both 为 Opensource.com 的读者在使用 rsync 备份 Linux 系统方面提了一些建议,在这年的更早时候,他发起了一项问卷调查询问大家,在 ...

Linux就该这么学
29分钟前
2
0
以太坊私有链搭建

https://blog.csdn.net/Blockchain_lemon/article/details/80589123

Moks角木
今天
3
0
自律给我自信-为什么要自律

为什么要自律 混一天和努力一天 看不到任何差别 3天看不到任何变化 7天也看不到任何效果 但是 1个月后, 会看到话题不同 3个月后, 会看到气场不同 6个月后, 会看到距离不同 3年后, 会看到...

周大壮
今天
4
0
读书replay计划说明

突然脑袋一闪,我有了这样一个主意:通过写博客的方式,将我阅读的书中的内容replay出来。 我一般会找着我感兴趣的书去读,一般也会读书中我感兴趣的章节,或者当下对我有用的章节,所以这个...

wanxiangming
今天
1
0
CentOS7安装xrdp环境可实现远程桌面访问

CentOS7安装xrdp环境可实现远程桌面访问 2018-07-14 06:39:28 分类:运维 阅读(2051) 评论(0) 在"Ubuntu系统安装xrdp桌面客户端及实现远程连接桌面"文章中有分享过在Ubuntu系统中安装XRDP环境...

linjin200
今天
5
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部