1.4.2 练习

一、颠倒三角形

题目:修改顶点着色器让三角形上下颠倒

更改顶点着色器代码如下:

#version 330 corelayout (location = 0) in vec3 aPos; //位置变量的属性位置值为0
layout (location = 1) in vec3 aColor; //颜色变量的属性位置值为1out vec3 ourColor; //向片段着色器输出一个颜色void main()
{gl_Position = vec4(aPos.x, -aPos.y, aPos.z, 1.0); //y轴取反ourColor = aColor;
}

运行结果如下:

二、偏移三角形

题目:使用uniform定义一个水平偏移量,在顶点着色器中使用这个偏移量把三角形移动到屏幕右侧

更改顶点着色器代码:

#version 330 corelayout (location = 0) in vec3 aPos; //位置变量的属性位置值为0
layout (location = 1) in vec3 aColor; //颜色变量的属性位置值为1out vec3 ourColor; //向片段着色器输出一个颜色uniform float xOffset;void main()
{gl_Position = vec4(aPos.x+xOffset, -aPos.y, aPos.z, 1.0);ourColor = aColor;
}

在initializeGL()函数中添加如下一行代码:

m_shaderProgram.setUniformValue("xOffset", 0.5f);

运行结果如下:

三、更改颜色

题目:使用out关键字把顶点位置输出到片段着色器,并将片段的颜色设置为与顶点位置相等(来看看连顶点位置值都在三角形中被插值的结果)。做完这些后,尝试回答下面的问题:为什么在三角形的左上角是黑的?

更改顶点着色器代码:

#version 330 corelayout (location = 0) in vec3 aPos; //位置变量的属性位置值为0
layout (location = 1) in vec3 aColor; //颜色变量的属性位置值为1out vec3 ourColor; //向片段着色器输出一个颜色uniform float xOffset;void main()
{gl_Position = vec4(aPos.x+xOffset, -aPos.y, aPos.z, 1.0);ourColor = aPos;
}

运行结果如下:

为什么在三角形的左上角是黑的?

因为左上角的坐标是(-0.5,-0.5),颜色值只有0-1,用坐标(-0.5,-0.5)当做颜色就变成了坐标是(0,0),颜色就是黑色。

注:观看OpenGL中文官网(https://learnopengl-cn.github.io/)和阿西拜的现代OpenGL入门(https://ke.qq.com/course/3999604#term_id=104150693)学习OpenGL

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/769595.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

项目配置之道:优化Scrapy参数提升爬虫效率

前言 在当今信息时代,数据是无处不在且无比重要的资源。为了获取有效数据,网络爬虫成为了一项至关重要的技术。Scrapy作为Python中最强大的网络爬虫框架之一,提供了丰富的功能和灵活的操作,让数据采集变得高效而简单。本文将以爬…

线程和进程有什么区别?

1、典型回答 进程(Process)和线程(Thread)是操作系统中两个重要的概念,都是用来执行任务的,它们的定义如下: 进程是指计算机中正在运行的程序的实例。每个进程都有自己的地址空间、内存、文件…

生成词云...

import wordcloud import jieba import PIL import numpy as np import matplotlib.pyplot as plt import jieba.analyse image_background PIL.Image.open(/home/back/pythonclass/11.jpg) #遮罩 MASK np.array(image_background) txtopen("/home/back/pythoncla…

如何本地部署Imagewheel并实现无公网IP远程连接打造个人云图床

文章目录 1.前言2. Imagewheel网站搭建2.1. Imagewheel下载和安装2.2. Imagewheel网页测试2.3.cpolar的安装和注册 3.本地网页发布3.1.Cpolar临时数据隧道3.2.Cpolar稳定隧道(云端设置)3.3.Cpolar稳定隧道(本地设置) 4.公网访问测…

Mysql数据库——数据备份与恢复

目录 一、数据备份的重要性 二、数据库备份的分类 1.从物理与逻辑的角度分类 2.从数据库的备份策略角度,备份可分为 2.1完全备份 2.2差异备份 2.3增量备份 2.4总结 三、常见的备份方法 四、Mysql数据库完全备份 1.完全备份定义 2.优缺点 3.数据库完全备…

2024南京人工智能展会:定于2024年11月份在南京国际博览中心举行

2024南京国际人工智能展览会,拟定于2024年11月份在南京国际博览中心隆重召开。这一盛大的科技盛宴,无疑将为全球人工智能领域注入新的活力,推动科技创新与社会进步。 此次展览会将以“智能未来,共创辉煌”为主题,汇聚全…

Hbase 王者荣耀数据表 HBase常用Shell命令

大数据课本: HBase常用Shell命令 在使用具体的Shell命令操作HBase数据之前,需要首先启动Hadoop,然后再启动HBase,并且启动HBase Shell,进入Shell命令提示符状态,具体命令如下: $ cd /usr/local…

解决论文中插入图片显示不完整

点击图片-开始,找到段落中右下角 将行距改为单倍行距

CDP7 下载安装 Flink Percel 包

下载链接:https://www.cloudera.com/downloads/cdf/csa-trial.html 点击后选择版本, 然后点击download now,会有一个协议,勾选即可,然后就有三个文件列表, 我这里是已经注册登录的状态,如果没…

链式二叉树经典OJ题目(一)

目录 结构体声明: 1.单值二叉树 题目描述: 思路分析: 源码: 2.二叉树最大深度 题目描述: 思路分析: 源码: 3.检查两棵树是否相同 题目描述: 思路分析: 源码…

YOLOv9改进策略:卷积魔改 | SCConv:空间和通道重建卷积,即插即用,助力检测 | CVPR2023

💡💡💡本文改进内容: CVPR2023 SCConv 由两个单元组成:空间重建单元(SRU)和通道重建单元(CRU)。 SRU利用分离重建方法来抑制空间冗余,而CRU使用分割-变换-融…

Linux文件系列:磁盘,文件系统,软硬链接

Linux文件系列:磁盘,文件系统,软硬链接 一.磁盘相关知识1.磁盘机械构成2.磁盘物理存储3.磁盘逻辑存储1.LBA地址2.磁盘的分区和分组 二.文件系统和inode1.inode结构体2.文件系统1.Super Block(超级块)2.Group Descriptor Table(块组描述表GDT)3.inode Table4.Data Blocks5.Block…

mysql面试,事务四大特性,mvcc版本控制,3个重要日志,索引结构,索引失效,innodb引擎执行流程,主从复制,锁,page页

大纲 事务4大特性 https://blog.csdn.net/king_zzzzz/article/details/136699546 Mvcc多版本控制 https://blog.csdn.net/king_zzzzz/article/details/136699546 3个重要日志 https://blog.csdn.net/king_zzzzz/article/details/136868343 索引 mysql 索引(…

使用Docker搭建Logstash

使用Docker搭建Logstash Logstash是一个开源的服务器端数据处理管道,它能够接收来自多个来源的数据,转换数据,然后将数据发送到您指定的目的地。使用Docker搭建Logstash是一个简单、高效的方式。本教程将分别介绍如何通过Docker CLI和Docker…

家用智能洗地机哪个牌子好?4款型号让你解锁高效省力生活体验

在今天的社会中,随着生活节奏的加快,人们对于家庭清洁的需求不断增加。传统的清洁方法已经无法满足现代家庭的需求。因此,洗地机作为一种高效、方便的清洁工具,已经成为了许多家庭首选的清洁设备。然而,在市场上&#…

富格林:出金不顺谨防虚假受害

富格林悉知,做投资有盈有亏是正常的,投资者需要做的是尽可能降低亏损的风险,警惕虚假出金陷阱,避免造成不必要的亏损。在进入黄金投资市场之前,投资者需学习一定的投资技巧,并且需要采取正规的策略来打击和…

RSTP、MSTP、VRRP

RSTP协议原理与配置 问题一、STP的收敛延时(30秒(有BP端口情况下RP端口down)或者50秒(没有BP端口情况下RP端口down)) RSTP:Rapid Spanning Tree Protocol RSTP和STP从原理流程上一样&#xf…

【刷题】滑动窗口精通 — Leetcode 30. 串联所有单词的子串 | Leetcode 76. 最小覆盖子串

送给大家一句话: 充满着欢乐与斗争精神的人们,永远带着欢乐,欢迎雷霆与阳光。 —— 赫胥黎 滑动窗口精通 前言Leetcode 30. 串联所有单词的子串题目描述算法思路 Leetcode 76. 最小覆盖子串题目描述算法思路 Thanks♪(・ω&#xf…

Myelsa的Python算法之旅(高铁直达)

博客个人主页(非风V非雨): https://blog.csdn.net/ygb_1024?spm1010.2135.3001.5421 Python-VBA编程500例算法清单(持续更新中) Myelsa的Python算法之旅创作清单算法明细对应网址博客个人主页(非风V非雨)非风V非雨-CSDN博客Myelsa的Python算法之旅(高…

【晴问算法】入门篇—字符串处理—连续相同字符统计

题目描述 给定一个字符串,统计其中连续出现的相同字符个数。输入描述 一个非空字符串(长度不超过100,仅由小写字母组成)输出描述 按从左到右字符出现的顺序,输出每个字符连续出现的个数。 其中每个字符输出一行,每行以空格为分隔&…