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

本文共 1471 字,大约阅读时间需要 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 右下};

左右翻转方法

为了实现左右翻转,只需交换纹理坐标的左右值,顶点坐标顺序保持不变。变换后坐标如下:

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/

你可能感兴趣的文章
oauth2登录认证之SpringSecurity源码分析
查看>>
OAuth2:项目演示-模拟微信授权登录京东
查看>>
OA系统多少钱?OA办公系统中的价格选型
查看>>
OA系统选型:选择好的工作流引擎
查看>>
OA让企业业务流程管理科学有“据”
查看>>
OA项目之会议通知(查询&是否参会&反馈详情)
查看>>
Vue.js 学习总结(13)—— Vue3 version 计数介绍
查看>>
OA项目之我的会议(会议排座&送审)
查看>>
OA项目之我的会议(查询)
查看>>
OA项目之我的审批(会议查询&会议签字)
查看>>
OA项目之项目简介&会议发布
查看>>
ObjC的复制操作
查看>>
Object c将一个double值转换为时间格式
查看>>
object detection之Win10配置
查看>>
object detection训练自己数据
查看>>
object detection错误Message type "object_detection.protos.SsdFeatureExtractor" has no field named "bat
查看>>
object detection错误之Could not create cudnn handle: CUDNN_STATUS_INTERNAL_ERROR
查看>>
object detection错误之no module named nets
查看>>
Object of type 'ndarray' is not JSON serializable
查看>>
Object Oriented Programming in JavaScript
查看>>