当前位置: 首页 > news >正文

opengl基础笔记1

1、opengl运行模式及opengl规范
运行模式:核心模式与立即渲染模式(弃用)
由于OpenGL的大多数实现都是由显卡厂商编写的,当产生一个bug时通常可以通过升级显卡驱动来解决。这些驱动会包括你的显卡能支持的最新版本的OpenGL,这也是为什么总是建议你偶尔更新一下显卡驱动。
2.开发库以及查看opengl版本
开发库: GLUT,SDL,SFML和 GLFW
查看显卡支持opengl版本: glxinfo(linux)和  OpenGL Extension Viewer(windows)  http://download.cnet.com/OpenGL-Extensions-Viewer/3000-18487_4-34442.html
3、设置视窗大小以及清空颜色
glViewport(0, 0, 800, 600);
在我们开始渲染之前还有一件重要的事情要做,我们必须告诉OpenGL渲染窗口的尺寸大小,即视口(Viewport),这样OpenGL才知道怎样根据窗口大小显示数据和坐标。我们可以通过调用glViewport 函数来设置窗口的 维度 (Dimension)。 OpenGL幕后使用glViewport中定义的位置和宽高进行2D坐标的转换,将OpenGL中的位置坐标转换为你的屏幕坐标。例如,OpenGL中的坐标(-0.5, 0.5)有可能(最终)被映射为屏幕中的坐标(200,450)。注意,处理过的OpenGL坐标范围只为-1到1,因此我们事实上将(-1到1)范围内的坐标映射到(0, 800)和(0, 600)。
glClearColor(0.2f, 0.3f, 0.3f, 1.0f); 
glClear(GL_COLOR_BUFFER_BIT);
注意:除了glClear 之外,我们还调用了glClearColor 来设置清空屏幕所用的颜色。当调用glClear 函数,清除颜色缓冲之后,整个颜色缓冲都会被填充为glClearColor 里所设置的颜色。在这里,我们将屏幕设置为了类似黑板的深蓝绿色。 你应该能够回忆起来我们在  OpenGL  这节教程的内容,glClearColor 函数是一个 状态设置 函数,而glClear 函数则是一个 状态使用 的函数,它使用了当前的状态来获取应该清除为的颜色。
4、opengl渲染管线以及可控制的着色器
opengl渲染管线:  顶点着色器 -> 图元装配 -> 几何着色器 -> 测试与混合处理 -> 片段着色器 -> 光栅化处理
顶点着色器(Vertex Shader):它把一个单独的顶点作为输入。顶点着色器主要的目的是把3D坐标转为另一种3D坐标(后面会解释),同时顶点着色器允许我们对顶点属性进行一些基本处理。
几何着色器(Geometry Shader): 把图元形式的一系列顶点的集合作为输入,它可以通过产生新顶点构造出新的(或是其它的)图元来生成其他形状。
片段着色器(Fragment Shader): 在片段着色器运行之前会执行裁切,裁切会丢弃超出你的视图以外的所有像素,用来提升执行效率。主要目的是计算一个像素的最终颜色,这也是所有OpenGL高级效果产生的地方。 通常,片段着色器包含3D场景的数据(比如光照、阴影、光的颜色等等),这些数据可以被用来计算最终像素的颜色。
注意:OpenGL中的一个片段是OpenGL渲染一个像素所需的所有数据。在现代OpenGL中,我们 必须定义至少一个顶点着色器和一个片段着色器(因为GPU中没有默认的顶点/片段着色器)

相关文章:

opengl基础笔记1

1、opengl运行模式及opengl规范 运行模式:核心模式与立即渲染模式(弃用) 由于OpenGL的大多数实现都是由显卡厂商编写的,当产生一个bug时通常可以通过升级显卡驱动来解决。这些驱动会包括你的显卡能支持的最新版本的OpenGL&#xf…...

Flutter中的各种刷新小部件

1.FutureBuilder 用于处理异步操作和构建界面的非常有用的小部件。它通常与 Future 对象一起使用,用于在异步操作完成后构建界面。 import package:flutter/material.dart;void main() > runApp(MyApp());class MyApp extends StatelessWidget {overrideWidget…...

DataxWeb安装部署及使用--真香警告

DataxWeb安装部署及使用–真香警告 文章目录 1.Datax简介1.1 Datax是什么?1.2 Datax的架构1.3 设计理念1.4 DataX3.0框架设计1.5 DataX3.0插件体系1.6 DataX3.0核心架构1.6.1 核心模块介绍1.6.2 DataX调度流程 2.DataxWeb简介2.1 DataxWeb是什么?2.2 Dat…...

OpenCV 笔记(4):图像的算术运算、逻辑运算

Part11. 图像的算术运算 图像的本质是一个矩阵,所以可以对它进行一些常见的算术运算,例如加、减、乘、除、平方根、对数、绝对值等等。除此之外,还可以对图像进行逻辑运算和几何变换。 我们先从简单的图像加、减、逻辑运算开始介绍。后续会有…...

创建ABAP数据库表和ABAP字典对象-使用已存在的数据元素增加城市字段04

基于内置域增加一个字段 1.在编辑器中,输入字段的名称,后跟冒号:city:。暂时忽略这个错误。2. 输入/MOC/C并使用自动补全(**Ctrl空格**),输入类型。3. 然后添加一个分号:city: /moc/city;4.在SAP GUI中查看,字段已经新增...

Centos7上安装 Node.js

文章目录 一、前言二、步骤三、涉及nodejs,centos还是少用吧 一、前言 centos7安装nodejs如果直接安装较高版本会包错误,无法运行npm node: /lib64/libm.so.6: version GLIBC_2.27‘ not found (required by node)二、步骤 网上说的下载升级编译器的方…...

栈及其栈的模拟实现和使用

1. 栈(Stack) 1.1 概念 栈 :一种特殊的线性表,其 只允许在固定的一端进行插入和删除元素操作 。进行数据插入和删除操作的一端称为栈顶,另一端称为栈底。栈中的数据元素遵守后进先出LIFO ( Last In First Out )的原则…...

HarmonyOS开发:开源一个刷新加载组件

前言 系统Api中提供了下拉刷新组件Refresh,使用起来也是非常的好用,但是风格和日常的开发,有着巨大的出入,效果如下: 显然上面的效果是很难满足我们实际的需求的,奈何也没有提供的属性可以更改,…...

XSSFWorkbook读取模板,批量填充并导出文件

1、pom文件导入 <dependency><groupId>org.apache.poi</groupId><artifactId>poi</artifactId><version>4.1.0</version> </dependency> <dependency><groupId>org.apache.poi</groupId><artifactId>…...

Lazada新店运营秘籍自养号测评技术

跨境行业的前途虽然大好&#xff0c;但要想真正从中分一杯羹并非易事。东南亚市场前景大好&#xff0c;而作为其主流在线购物网站之一&#xff0c;Lazada吸引了众多卖家和买家。作为新手来说&#xff0c;注册好Lazada之后&#xff0c;店铺下一步该怎么做呢&#xff1f;赶紧来看…...

python:逐像素处理遥感数据时间序列数据(求时间序列最大值、最大值所对应的索引、最大值所在的时间)

作者:CSDN @ _养乐多_ 本文记录了使用gdal、ras、numpy 库实现遥感时间序列数据逐像素处理的代码。并以求NADVI时间序列最大值为例。代码可扩展到其他多种对时间序列的处理,比如MK趋势分析,求时间序列中值、众数、标准差、和,时间序列拟合、异常检测、机器学习预测等多种应…...

SpringCloudGateway--过滤器(自定义filter)

目录 一、概览 二、通过GatewayFilter实现 三、继承AbstractGatewayFilterFactory 一、概览 当使用Spring Cloud Gateway构建API网关时&#xff0c;可以利用Spring Cloud Gateway提供的内置过滤器&#xff08;filter&#xff09;来实现对请求的处理和响应的处理。过滤器可以…...

【docker】安装 showdoc

1. 下载镜像 2.新建存放showdoc数据的目录 3.启动showdoc容器 4.打开网页 1. 下载镜像 # 原版官方镜像安装命令(中国大陆用户不建议直接使用原版镜像&#xff0c;可以用后面的加速镜像) docker pull star7th/showdoc # 中国大陆镜像安装命令&#xff08;安装后记得执行docke…...

智慧公厕:科技赋予公共卫生新生命,提升城市管理品质

在现代化城市中&#xff0c;公共卫生设施的发展与提升一直是对城市管理者和市民的共同期望。然而&#xff0c;传统的公共厕所常常令人困扰&#xff0c;脏乱臭成为难题。为了解决这一难题&#xff0c;广州中期科技科技有限公司全新升级的智慧公厕整体解决方案&#xff0c;补誉为…...

深度学习_2 数据操作之数据预处理

数据操作 机器学习包括的核心组件有&#xff1a; 可以用来学习的数据&#xff08;data&#xff09;&#xff1b;如何转换数据的模型&#xff08;model&#xff09;&#xff1b;一个目标函数&#xff08;objective function&#xff09;&#xff0c;用来量化模型的有效性&…...

在美团和阿里6年,很难却也真实...

先简单的说下&#xff0c;本人6年工作经验&#xff0c;曾就职于某大型国企&#xff0c;公司研究院成员&#xff0c;也就职过美团担任高级测试开发工程师&#xff0c;有丰富的高并发大型项目经验。 后端高并发、高性能、高可用性开发&#xff0c;自动化测试框架开发以及软件自动…...

2、NLP文本预处理技术:词干提取和词形还原

一、说明 在上一篇文章中&#xff0c;我们解释了文本预处理的重要性&#xff0c;并解释了一些文本预处理技术。在本文中&#xff0c;我们将介绍词干提取和词形还原主题。 词干提取和词形还原是两种文本预处理技术&#xff0c;用于将单词还原为其基本形式或词根形式。这些技术的…...

Fabric官方示例测试网络搭建

目录 一、参考文档二、环境依赖三、Fabric源码安装3.1、创建链目录3.2、下载源码3.3、修改安装脚本3.4、开始安装3.4.1、执行安装脚本3.4.2、手动下载ca和二进制配置包 四、启动测试网络五、使用测试网络5.1、创建应用通道5.2、部署链码5.3、发送交易 六、关闭测试网络 一、参考…...

ubuntu20.04 conda pack 打包虚拟环境,直接将其用到其他终端

在本机ubuntu20.04下配置的虚拟环境&#xff0c;想到将其整个放到新建的docker(ubuntu20.04)下使用&#xff0c;操作步骤如下&#xff1a; # 一、在ubuntu1下打包虚拟环境 # 安装conda-pack pip install conda-pack# 进入需要打包的虚拟环境,这里将目标虚拟环境名称为goal_env…...

云原生-AWS EC2使用、安全性及国内厂商对比

目录 什么是EC2启动一个EC2实例连接一个实例控制台ssh Security groups规则默认安全组与自定义安全组 安全性操作系统安全密钥泄漏部署应用安全元数据造成SSRF漏洞出现时敏感信息泄漏网络设置错误 厂商对比参考 本文通过实操&#xff0c;介绍了EC2的基本使用&#xff0c;并在功…...

告别库函数依赖:手把手教你用寄存器点亮复旦微FM33LC0XX的GPIO(附代码避坑)

从库函数到寄存器&#xff1a;复旦微FM33LC0XX GPIO开发实战指南 第一次翻开复旦微FM33LC0XX的寄存器手册时&#xff0c;那种扑面而来的寄存器位域描述让我想起了十年前刚接触STM32的场景。与常见的HAL库不同&#xff0c;直接操作寄存器就像亲手拧动机械表的每一个齿轮——虽然…...

MeterSphere接口测试实战:从单接口到自动化场景的完整构建

1. 初识MeterSphere&#xff1a;接口测试新手的第一个任务 刚接手接口测试任务时&#xff0c;我和大多数新人一样既兴奋又忐忑。记得第一次打开MeterSphere这个开源持续测试平台&#xff0c;满屏的专业术语让我有点发懵。但实际用下来发现&#xff0c;它的界面设计比Postman这类…...

基于LCL滤波器的光伏三相逆变并网模型 1.模型由光伏系统,逆变器,LCL滤波器和交流主网组成 2

基于LCL滤波器的光伏三相逆变并网模型1.模型由光伏系统&#xff0c;逆变器&#xff0c;LCL滤波器和交流主网组成 2.光伏采用扰动观测法实现最大功率输出&#xff0c;逆变器采用恒定直流母线电压控制策略 实现以下目标&#xff1a; 1.光伏维持在最大功率输出。 2.逆变器实现直流…...

宿主机与虚拟机网络配置打通

Kali 虚拟机网络配置笔记 一、基础网络模式 1. 桥接模式 (Bridged) 目的&#xff1a;让虚拟机加入物理局域网配置&#xff1a; 选择物理网卡&#xff08;非VMnet1/VMnet8&#xff09;启用"复制物理网络连接状态"&#xff08;推荐笔记本用户&#xff09; 结果&#xf…...

定时任务XXL-Job

目录为什么是XXL-Job&#xff1f;SpringBoot 整合XXL-Job1&#xff09;环境准备2&#xff09;SpringBoot 项目依赖3&#xff09;application.yml 配置4&#xff09;XXL-Job 配置类5&#xff09;定时任务业务类&#xff08;核心代码&#xff09;6&#xff09;调度中心Web可视化界…...

CST可调谐太赫兹超材料吸收器仿真教学,石墨烯,二氧化钒,锑化铟等材料设置 包括建模过程,后处理

CST可调谐太赫兹超材料吸收器仿真教学&#xff0c;石墨烯&#xff0c;二氧化钒&#xff0c;锑化铟等材料设置 包括建模过程&#xff0c;后处理&#xff0c;吸收光谱图教学等 包括宽带吸收器、窄带&#xff0c;以及宽窄带吸收器设计"打开CST微波工作室&#xff0c;先别急着…...

基于 HT for Web 的机车整备场数字孪生系统技术实现

本文基于 HT for Web&#xff08;基于 WebGL/Canvas 的纯前端可视化插件&#xff09;构建机车整备场数字孪生三维可视化系统&#xff0c;通过轻量化三维建模、实时数据对接、前端 API 驱动渲染&#xff0c;实现整备场全流程、全要素、全场景的数字化监管。该系统采用 B/S 架构&…...

航美实木板:以匠心守健康,用实力赢信赖——一位经销商的真情告白

“一张好的板材&#xff0c;守护的不是一个人&#xff0c;而是一个家庭的健康与幸福。”说这句话的汪总&#xff0c;是实木行业的“老炮儿”&#xff0c;深耕实木定制多年的他&#xff0c;对木材“热胀冷缩必变形开裂”的特性深信不疑。直到刷到航美实木板的宣传视频&#xff0…...

【WSL】【OpenClaw】WSL 中配置 SearXNG 指南

SearXNG 部署指南 环境要求 Python 版本&#xff1a;≥ 3.11&#xff08;推荐 3.13&#xff09;依赖管理&#xff1a;pip配置目录&#xff1a;~/.searxng/ 安装步骤 1. 克隆 SearXNG 仓库 cd ~ git clone https://github.com/searxng/searxng.git2. 安装 Python 依赖 cd searxn…...

Python-for-Android终极指南:用Python代码打造原生Android应用

Python-for-Android终极指南&#xff1a;用Python代码打造原生Android应用 【免费下载链接】python-for-android Turn your Python application into an Android APK 项目地址: https://gitcode.com/gh_mirrors/py/python-for-android 想要用你最熟悉的Python语言开发An…...