博客
关于我
顶点坐标和纹理坐标之纹理变换
阅读量:146 次
发布时间:2019-02-28

本文共 1222 字,大约阅读时间需要 4 分钟。

给定如下坐标定义:

/* 定义顶点的次序是大写的反N字形,这样根据绘制三角形规则刚好构成矩形 */    float vertices[] = {        -1.0f,  1.0f, 1.0,  0,  0, //0左上        -1.0f, -1.0f, 1.0,  0,  1, //1左下         1.0f,  1.0f, 1.0,  1,  0, //2右上         1.0f, -1.0f, 1.0,  1,  1, //3右下    };

如下图,上面的顶点坐标从上到下连起来就是反N字形连线,纹理坐标把下面的坐标对应到顶点坐标的上面,连线和顶点坐标的反N字刚好上下颠倒。

需要左右翻转的话就很简单了,把纹理坐标左右坐标调换,坐标次序不变,就完成了左右翻转。

 

变换前和变换后比较:

//变换前:    float vertices[] = {        -1.0f,  1.0f, 1.0,  0,  0, //0左上        -1.0f, -1.0f, 1.0,  0,  1, //1左下         1.0f,  1.0f, 1.0,  1,  0, //2右上         1.0f, -1.0f, 1.0,  1,  1, //3右下    };// 前置摄像头左右是反的,左右翻转纹理坐标,即:    float vertices[] = {        -1.0f,  1.0f, 1.0,  1,  0, //0左上        -1.0f, -1.0f, 1.0,  1,  1, //1左下         1.0f,  1.0f, 1.0,  0,  0, //2右上         1.0f, -1.0f, 1.0,  0,  1, //3右下    };

另外一种定义,开始不对纹理上下翻转:

// 变换前,这个纹理坐标没有上下翻转:    float vertices[] = {        -1.0f,  1.0f, 1.0,  0,  1, //0左上        -1.0f, -1.0f, 1.0,  0,  0, //1左下         1.0f,  1.0f, 1.0,  1,  1, //2右上         1.0f, -1.0f, 1.0,  1,  0, //3右下    };// 变换后,前置摄像头左右是反的,翻转纹理左右坐标, 即:    float vertices[] = {        -1.0f,  1.0f, 1.0,  1,  1, //0左上        -1.0f, -1.0f, 1.0,  1,  0, //1左下         1.0f,  1.0f, 1.0,  0,  1, //2右上         1.0f, -1.0f, 1.0,  0,  0, //3右下    };

 

转载地址:http://nfld.baihongyu.com/

你可能感兴趣的文章
netfilter应用场景
查看>>
netlink2.6.32内核实现源码
查看>>
Netpas:不一样的SD-WAN+ 保障网络通讯品质
查看>>
NetScaler的常用配置
查看>>
netsh advfirewall
查看>>
NETSH WINSOCK RESET这条命令的含义和作用?
查看>>
Netty WebSocket客户端
查看>>
netty 主要组件+黏包半包+rpc框架+源码透析
查看>>
Netty 异步任务调度与异步线程池
查看>>
Netty中集成Protobuf实现Java对象数据传递
查看>>
Netty事件注册机制深入解析
查看>>
Netty原理分析及实战(四)-客户端与服务端双向通信
查看>>
Netty客户端断线重连实现及问题思考
查看>>
Netty工作笔记0006---NIO的Buffer说明
查看>>
Netty工作笔记0007---NIO的三大核心组件关系
查看>>
Netty工作笔记0011---Channel应用案例2
查看>>
Netty工作笔记0013---Channel应用案例4Copy图片
查看>>
Netty工作笔记0014---Buffer类型化和只读
查看>>
Netty工作笔记0020---Selectionkey在NIO体系
查看>>
Vue踩坑笔记 - 关于vue静态资源引入的问题
查看>>