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

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

顶点坐标变换与纹理调整

顶点坐标定义

顶点坐标的定义遵循反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, 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, 0, 0, // 0 左上
-1.0f, -1.0f, 1.0, 0, 1, // 1 左下
1.0f, 1.0f, 1.0, 1, 1, // 2 右上
1.0f, -1.0f, 1.0, 1, 0 // 3 右下
};

通过上述方法,可以轻松实现顶点坐标的左右翻转和上下翻转,确保纹理坐标与顶点坐标的反N字形连线相匹配。

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

你可能感兴趣的文章
NetApp凭借领先的混合云数据与服务把握数字化转型机遇
查看>>
NetBeans IDE8.0需要JDK1.7及以上版本
查看>>
netcat的端口转发功能的实现
查看>>
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图片
查看>>