自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(666)
  • 资源 (195)
  • 收藏
  • 关注

原创 ERROR 4: Unable to open EPSG support file gcs.csv. Try setting the GDAL_DATA environment variable t

ERROR 4: Unable to open EPSG support file gcs.csv. Try setting the GDAL_DATA environment variable t

2025-02-14 11:06:37 777

原创 osg3.6.5 osgEarth3.2中,加载tif文件,由于找不到libprotobufd.dll,无法继续执行代码。重新安装程序可能解决此问题,

osg3.6.5 osgEarth3.2中,加载tif文件

2025-02-13 17:30:29 308

原创 osg3.6.5 osgEarth3.2中,生成ive格式文件,使用osgViewer.exe命令无法显示

osg3.6.5 osgEarth3.2中,生成ive格式文件,使用osgViewer.exe命令无法显示

2025-02-12 17:03:11 244 1

原创 osg3.6.5 osgEarth3.2中,鼠标操作地球放大、缩小、旋转发生屏闪

osg3.6.5 osgEarth3.2中,加earth文件和sharp文件,解决鼠标操作地球放大、缩小、旋转发生屏闪

2025-01-23 17:21:52 412 2

原创 osgEarth中加载sharp文件,同时显示地球正面和背面,变成透视图了

osgEarth中加载sharp文件,同时显示地球正面和背面,变成透视图了。颜色透明度:确保 Shapefile 图层的颜色具有完全不透明的 alpha 值(1.0)。深度测试:使用 osg::Depth 类设置深度测试,确保正确的深度比较(使用 osg::Depth::LESS)。背面剔除:启用背面剔除,通过设置 GL_CULL_FACE 为 ON,确保只渲染前面。多重采样抗锯齿(MSAA):启用 MSAA 以减少渲染中的锯齿和不规则色条。

2025-01-17 11:02:35 1013 1

原创 osg3.6.5和osgEarth3.2下Sharp多边形渲染与控制

osg3.6.5和osgEarth3.2下Sharp多边形渲染与控制,行时发现影像图层和 Shapefile 图层重叠在一起并相互干扰时,可能的原因包括渲染顺序、深度测试和混合模式设置不当。

2025-01-16 11:24:01 699 1

原创 osg osgEarth加载earth文件只显示白球,全球影像图,全球高程图、局部高清纹理图均无法正常显示

osg osgEarth加载earth文件只显示白球,全球影像图,全球高程图、局部高清纹理图均无法正常显示

2025-01-10 13:27:13 523 1

原创 osgEarth视口到达地球的南北极,鼠标就不能上下旋转视口了

osgEarth视口到达地球的南北极,鼠标就不能上下旋转视口了

2025-01-08 17:50:40 514 1

原创 osg3.6.5,osgEarth3.2报错:“(”:“::”右边的非法标记,语法错误:“expression”后出现意外标记“(”,语法错误: 此处出现意外的“)”;应为“;”

osg3.6.5,osgEarth3.2报错:“(”:“::”右边的非法标记,语法错误:“expression”后出现意外标记“(”,语法错误: 此处出现意外的“)”;应为“;”

2025-01-03 16:08:29 381 1

原创 以下文件中的行尾不一致。是否将行尾标准化?

我在windows10下,打开visual studio2022打开工程时,提示以下文件中的行尾不一致。是否将行尾标准化?

2024-12-23 09:56:12 981

原创 在 Visual Studio 2022 中,将 if 语句的风格从 K&R 风格(即大括号各占一行)改为紧凑风格(即大括号与条件语句同行)

在 Visual Studio 2022 中,将 if 语句的风格从 K&R 风格(即大括号各占一行)改为紧凑风格(即大括号与条件语句同行)

2024-12-20 15:57:34 515 2

原创 osg3.6.5和osgEarth3.2添加图标和文字

osg3.6.5和osgEarth3.2添加图标和文字

2024-12-19 17:14:52 469 6

原创 使用osgearth使渲染地球中间被黑色遮挡

使用osgearth使渲染地球中间被黑色遮挡

2024-12-12 11:30:45 252

原创 windows10下,nvidia控制面板升级驱动后osgearth三维程序无法运行

windows10下,nvidia控制面板升级驱动后osgearth三维程序无法运行

2024-12-08 11:18:09 363

原创 VirtualPlanetBuilder(VPB)源码编译

VirtualPlanetBuilder(VPB)源码编译

2024-12-04 11:57:55 352

原创 m_root = new osg::Group;调用失败

今天看杨石兴老师的视频:35讲osgEarth视频教程,跟着教程一路敲代码下来,一顿操作猛于虎,缺发现程序直接干崩溃了。而我的程序崩溃的在下面这行代码:m_root = new osg::Group;//调用失败

2024-12-03 16:14:22 412

原创 osg加载模型丢失纹理

osg加载模型丢失纹理

2024-12-01 21:58:02 266

原创 error MSB8041:此项目需要MFC库。从visual studio安装程序(单个组件选项卡)为正在使用的任何工具和体系结构安装他们

在visual studio2022下使用MFC报错:此项目需要 MFC 库。从 Visual Studio 安装程序(单个组件选项卡)为正在使用的任何工具集和体系结构安装

2024-12-01 10:02:59 1855

原创 unreal engine5中多个摄像机切换

unreal engine5中多个摄像机切换

2024-11-26 17:35:47 1032

原创 UE5 腿部IK 解决方案 footplacement

UE5 腿部IK 解决方案 footplacement

2024-11-18 16:34:07 1138 2

原创 Unreal engine5实现类似鬼泣5维吉尔二段跳

Unreal engine5实现类似鬼泣5维吉尔二段跳

2024-11-15 12:44:06 1220

原创 随着FAB的发布,在FAB中使用Megascans的简单方法(适用于Unreal Engine 5)

在2024年12月31号前获取在FAB中使用Megascans的简单方法(适用于Unreal Engine 5)

2024-11-05 22:21:31 1287

原创 unreal engine5动画重定向

unreal engine5动画重定向

2024-11-01 15:02:47 1667

原创 Unreal Engine5中使用 Lyra框架

Unreal Engine5中使用 Lyra框架

2024-10-31 15:34:35 1525 2

原创 Unreal Engine5 在Fab新版安装Niagara UI Renderer插件

Unreal Engine5安装Niagara UI Rnderer插件

2024-10-24 20:34:50 1627

原创 在Windows下使用MFC/Win32 API进行文件夹内所有文件的复制操作,可以通过遍历目录中的文件并逐个复制来实现

在Windows下使用MFC/Win32 API进行文件夹内所有文件的复制操作,可以通过遍历目录中的文件并逐个复制来实现

2024-10-20 22:52:35 950

原创 visual studio2022报错:error C2143: 语法错误: 缺少“;”(在“{”的前面),error C4430: 缺少类型说明符 - 假定为 int。注意: C++ 不支持默认 i

1.在使用MFC win32编程时,编译器莫名报各种编译错误,首先自己写的代码明明没错,但编译器报各种与代码语法相关的错误,比如:error C2143: 语法错误: 缺少“;”(在“‘template<’”的前面)error C4430: 缺少类型说明符 - 假定为 int。注意: C++ 不支持默认 int。

2024-10-18 10:21:32 1477

原创 RegOpenKeyEx函数读取注册表返回值2

RegOpenKeyEx函数读取注册表返回值2

2024-10-15 14:28:21 563

原创 华硕天选笔记本外接音箱没有声音

华硕天选笔记本外接音箱没有声音,在插上外接音箱时,系统会自动弹出下图窗口。

2024-10-02 17:32:53 1179

原创 在使用visual studio 2022,运行程序时弹窗:“ 此任务要求应用程序具有提升的权限“

在使用visual studio 2022,运行程序时弹窗:" 此任务要求应用程序具有提升的权限",每次都要再次点击“使用其他凭证重新启动”,这时,visual studio回关闭程序,然后再次重启vs,感觉好恼人啊。

2024-10-01 16:10:10 1291 1

原创 unreal engine5制作动作类游戏时,我们使用刀剑等武器攻击怪物或敌方单位时,发现攻击特效、伤害等没有触发

在使用unreal engine5制作动作类游戏时,我们使用刀剑等武器攻击怪物或敌方单位时,发现攻击特效、伤害等没有触发。检查动画蓝图、行为树等逻辑几乎也没有大的问题,可就是攻击无效,比方下图的情形。明明怪物已经冲撞到玩家,可并未生效。而玩家攻击怪物时也貌似不起作用,如果蓝图逻辑、行为树、动画通知都没有问题的话,那是什么原因呢?

2024-09-28 12:24:22 1125 1

原创 Watt ToolKit(steam++)加速服务启动失败,443端口被vsvnhttpsvc(5792)占用。请关掉443端口的程序或者尝试使用系统代理模式

Watt ToolKit(steam++)加速服务启动失败,443端口被vsvnhttpsvc(5792)占用。请关掉443端口的程序或者尝试使用系统代理模式

2024-09-09 22:19:48 4425

原创 此项不起作用,请确保你的蓝牙设备仍可检测到

此项不起作用,请确保你的蓝牙设备仍可检测到

2024-09-04 15:10:10 4686

原创 visual studio 2022更新以后,之前的有些工程编译出错,升级到Visual studio Enterprise 2022 Preview解决

visual studio 2022更新以后,之前的有些工程编译出错,升级到Visual studio Enterprise 2022 Preview解决

2024-09-02 14:53:19 1904

原创 windows11能上QQ微信,能ping通外网,可无法打开浏览器

windows11能上QQ微信,能ping通外网,可无法打开浏览器,修复winsock也不行

2024-09-02 10:45:05 1504

原创 visual studio2022编译unreal engine5.4.4源码

visual studio2022编译unreal engine5.4.4源码

2024-09-01 23:56:32 2309 7

原创 unreal engine5.4.3动画重定向

unreal engine5.4.3动画重定向

2024-08-31 20:21:20 675

原创 visual studio code默认打开文档的编码格式simplified chiness(GBK) gbk

visual studio code默认打开文档的编码格式simplified chiness(GBK) gbk

2024-08-29 10:22:04 1080

原创 unreal engine5中character角色和怪物交互时发生穿模

在 Unreal Engine 5 中,角色“穿模”通常指的是角色模型与其他物体(如墙壁、地面或其他对象)发生不正确的穿透或重叠现象解决办法

2024-08-25 17:53:04 1032

原创 TortoiseGit使用教程

TortoiseGit使用教程

2024-08-22 11:59:24 1673

osg3.6.5 osgEarth3.2中,加载tif文件

osg3.6.5 osgEarth3.2中,加载tif文件,实现思路 初始化 osgEarth:首先需要初始化 osgEarth 库。 创建地图对象:创建一个 osgEarth::Map 对象来管理和组织图层。 创建地图节点:使用地图对象创建一个 osgEarth::MapNode 节点,作为场景图的一部分。 加载图层:使用 osgEarth::GDALImageLayer 加载 TIFF 文件,并将其添加到地图对象中。 设置查看器:创建一个 osgViewer::Viewer 对象来显示场景,并设置相应的相机操控器。 设置初始视点:设置初始视点,使查看器能够正确地显示加载的图层。 运行查看器:将地图节点添加到查看器的场景数据中,并启动查看器。

2025-02-13

osg3.6.5 osgEarth3.2加载shp文件,加载earth文件,并生成ive文件

osg3.6.5 osgEarth3.2加载shp文件,加载earth文件,并生成ive文件:正确加载 Shapefile 数据、转换并添加到场景图中、渲染设置、保存场景图、设置视图和摄像机

2025-02-13

osg3.6.5 osgEarth3.2中,加earth文件和sharp文件,解决鼠标操作地球放大、缩小、旋转发生屏闪

osg3.6.5 osgEarth3.2中,加earth文件、sharp文件、ive文件,解决鼠标操作地球放大、缩小、旋转发生屏闪

2025-01-23

osg3.6.5和osgEarth3.2下Sharp多边形渲染与控制,shp文件文件加载以及控制shp文件中不同的国家显示不同的色块

osg3.6.5和osgEarth3.2下Sharp多边形渲染与控制,shp文件文件加载以及控制shp文件中不同的国家显示不同的色块

2025-01-16

osg3.6.5和osgEarth3.2加载sharp文件,并把地图国界线替换成彩色

osg3.6.5和osgEarth3.2加载sharp文件,并把地图国界线替换成彩色

2025-01-14

osgEarth加载Sharp文件

osgEarth加载Sharp文件,使用osgearth3.2 osg3.6.5库,加载世界地图的文件Shapefile文件,完整代码和相关依赖文件

2025-01-10

visual studio2022-64bit-3rdParty-osg365-osgEarth32 加载地球,并显示中国地图省份、城市、区、县城、镇、村行政图

visual studio2022_64bit_3rdParty_osg365_osgEarth32 加载地球,并显示中国地图省份、城市、区、县城、镇、村行政图

2025-01-02

osgEarht海量地名LOD根据距离的不同加载市、区、村镇

osgEarht海量地名LOD根据距离的不同加载市、区、村镇,使用多线程解决卡顿问题

2024-12-25

osg3.6.5和osgEarth3.2添加图标和文字

osg3.6.5和osgEarth3.2添加图标和文字,我在windows10下使用visual studio 2022加入osg3.6.5,、osgearth3.2编程,配置了osg和osgearth 好了头文件、lib、bin目录,现在的需求是在地球上添加图标和文字。网上有很多代码也能实现,但是作者往往用的osg和osgEarth版本都很老了,特别是osgEarth还在用2点几的版本,所有基本都是osgEarth::Symbology 和 osgEarth::Annotation 以及它们的成员。在 OSGEarth 3.2 中,Annotation 和 Symbology 模块确实已经被移除或重构,不再以之前的方式提供。这意味着直接包含 <osgEarth/Annotation> 和 <osgEarth/Symbology> 头文件的方法不再适用。

2024-12-19

osg3.6.5 osgearth3.2构建数字地球

windows10下,使用visual studio2022使用osg3.6.5 osgearth3.2构建数字地球

2024-12-12

Windows权限服务控制启动服务停止服务Delivery Optimization

Windows权限服务控制Delivery Optimization OpenService failed. Error code: 1060. 指定的服务未安装,代码解决以上问题

2024-08-21

使用openGL、glad、glfw、stb-image创建鼠标和键盘wsad控制窗口内的视口,并加载纹理

使用openGL、glad、glfw创建鼠标和键盘wsad控制窗口内的视口,并加载纹理,封装了openGL中的相机、矩阵变换、纹理处理,窗口键盘鼠标事件响应,参考learn openGL

2024-03-20

QGraphicsItem、QGraphicsView、QGraphicsScene封装

QGraphicsItem、QGraphicsView、QGraphicsScene封装自定义

2023-04-02

Qt QListWidget传入多张图片

Qt QListWidget传入多张图片,QListWidget样式设置,QListWidget是继承QListView,QListView是基于Model的,需要自己来建模(如建立QStringListModel,QSqlTableModel等),保存数据,这样就大大降低了数据冗余,提高了程序的效率,但是需要我们对数据建模有一定的了解,而QListWidget是一个升级版本的QListView,它已经为我们建立了一个数据存储模型QListWidgetItem,操作方便,直接调用addItem即可添加Item项。

2023-03-20

Qt中QMap和QMultimap使用

QMap 是Qt的通用容器类之一。它存储(键,值) 对,并提供与键相关联的值的快速查找。其实就是一个键值对的集合,经常使用的。具体更详细还得看看帮助文档 QMap/QMultiMap属于关联式容器,其底层结构是通过二叉树实现,故其查找value的效率很快。QMap中的数据都是成对出现的,第一个称为key(键),第二个称value(键值)。

2023-03-19

QT使用QListWidget显示多张图片

使用了QListWidget,QDockWidget QListWidget类提供了一个基于项目的列表小部件 QListWidget是一个方便的类,它提供了一个列表视图,类似于QListView提供的列表视图,但是具有一个用于添加和删除项的经典基于项的接口。QListWidget使用一个内部模型来管理列表中的每个QListWidgetItem。要获得更灵活的列表视图小部件,请使用带有标准模型的QListView类。列表小部件的构造方法与其他小部件相同。QListWidget与QListView类似,都可以显示一列Item,区别在于前者可以往其中增删Item。 QListWidget确定可以同时选择列表中的多少项,以及是否可以创建复杂的项选择。这可以使用函数设置

2023-03-10

Qt QDockWidget、QtreeWidget界面实现

Qt QDockWidget、QtreeWidget界面实现 ,QDockWidget提供了dock widget的概念,也称为工具面板或实用工具窗口

2023-03-09

openCV加载jpg图片完整代码

openCV加载jpg图片完整代码,包含完整头文件、lib、dll无需安装和配置opencv就可以运行

2023-02-23

QTreeWidgetItem的setData(int column,int role,QVariant& data)等,

Qt中QVariant是多种类型的联合,QVariant类中有个SetValue(T& value)方法,将自定义 T 类型的数据保存到QVariant对象中,可以理解为是自定义类型被封装成了QVariant的形式,这样,我们自定义的T类型的对象就能够通过所有参数和返回值为QVarian类型传递。比如QTableWidgetItem的setData(int column,QVariant& data)和QTreeWidgetItem的setData(int column,int role,QVariant& data)等,通过setData函数我们可以为每个单元格保存自己想绑定的数据及为每个树节点保存想绑定的自定义类型的数据。   但是,QVariant中的setValue方法的使用有个前提,就是我们自定义的类型要能被Qt所识别。那该怎样识别呢?   这就要用到宏定义Q_DECLARE_METATYPE了,通过这个宏定义可以将自定义的类型注册到Qt的元类型中,从而被Qt识别,通常在自定义类型定义之后使用。

2022-09-16

QStackedWidget 控件使用详解

QStackedWidget 控件相当于一个容器,提供一个空间来存放一系列的控件,并且每次只能有一个控件是可见的,即被设置为当前的控件。QStackedWidget可用于创建类似于QTabWidget提供的用户界面。它是一个构建在QStackedLayout类之上的方便布局小部件。与QStackedLayout一样,QStacked Widget可以构建并填充许多子Widget(“页面”):

2022-09-07

QTreeWidget类是一个方便的类,它提供了一个标准tree小部件与一个典型的基于项目所使用的接口类似QListView

QTreeWidget类是一个方便的类,它提供了一个标准tree小部件与一个典型的基于项目所使用的接口类似QListView Qt 3类。这个类是基于Qt的模型/视图的体系结构,使用一个默认的模型项目,每一个都是一个QTreeWidgetItem。      开发人员不需要模型/视图框架的灵活性可以使用这个类来创建简单的分层列表。更灵活的方法是结合QTreeView标准项目模型。这允许存储的数据是与它的表示分离。 在其最简单的形式,一个tree小部件可以构建在以下方式

2022-09-02

QTreeWidget用法并解决中文乱码问题 QTreeWidgetItem

QTreeWidget用法并解决中文乱码问题 Qt中实现树形结构可以使用QTreeWidget类,QTreeWidgetItem,也可以使用QTreeView类,QTreeWidget继承自QTreeView类。

2022-08-31

openSceneGraph3.5.1编译

osg3.5.1_windows_lib_dll_debug_release,openSceneGraph3.5.1编译 OpenSceneGraph3.5.1在windows10、visual studio2019编译的动态库和静态库

2022-08-23

Movie To GIF 主要特点 将视频转换为动画 GIF 将 AVI,MPEG,MKV,MP4,WMV,MOV 和 RM 等

Movie To GIF 主要特点 将视频转换为动画 GIF 将 AVI,MPEG,MKV,MP4,WMV,MOV 和 RM 等视频文件转换为动画 GIF 文件,同时保持原始播放速率和分辨率。 调整 将输出图像文件的分辨率保持为原始分辨率,或根据需要设置新大小。 帧率 用户可以更改输出帧速率的值(每秒多少图片)来控制剪辑的速度。 颜色 用户可以选择 GIF 的颜色。 支持运行平台: NT/2000/XP/Vista/Win7/8/10 支持语言: English/German/Spanish/Italian/French/Chinese/Japanese Movie to GIF 提供了在 GIF 文件中播放视频片段的选项。 您可以每秒设置更多帧,因此输出 GIF 显示为原始视频,或者为较小的动画GIF文件设置较少的帧数。 GIF 的宽度和高度也可调节。 Movie To GIF 许可证 免费软件

2022-08-22

今天在windows7下安装qt-opensource-windows-x86-5.12.9报错: gdb.exe -系统错误

今天在windows7下安装qt-opensource-windows-x86-5.12.9报错: gdb.exe -系统错误 无法启动此程序,因为计算机中丢失api-ms-win-core-path-l1-1-0.dll。尝试重新安装该程序以解决此问题

2022-08-17

ofstream,ifstream,fstream读写文件

在编程总经常会用到读写文件,基本都是使用ofstream,ifstream,fstream

2022-08-01

QTreeWidget是实现树形结构的类,在很多软件中都可以看到类似树形结构的界面

QTreeWidget是实现树形结构的类,在很多软件中都可以看到类似树形结构的界面 1.QTreeWidget树上添加图片 2.QTreeWidget动态加载,双击书上每个子节点,树会自动添加子节点

2022-07-22

vtk加载stl格式三维模型,完整代码包括所有的头文件,lib库和dll库

vtk加载stl格式三维模型,完整代码包括所有的头文件,lib库和dll库,解析STL文件

2022-07-17

Qt不同类进行信号与槽建立,并传递参数

Qt不同类进行信号与槽建立,并传递参数,Qt不同类之间槽函数连接

2022-07-05

Qt中使用QDomDocument和QDomnode来读取xml

Qt中使用QDomDocument和QDomnode来读取xml 内容简介:一.对QDomDocument和QDomnode的理解QDom前缀的都是代表节点类型。所以有,QDomElement代表一个Element节点,而QDomText代表一个Text节点。QDomNode类可以存储任意类型的节点。如果想进一步处理一个节点,首先必须把它转化为正确的数据类型。QDomNode调用toElement()以把它转化成QDomElement,然后调用tagName()来获得元素的标签名称。如果节点不是Element类型,那么toElement()函数就返回一个空QDomElement对

2022-06-29

opengl实现骨骼动画,用到glaux,glut

opengl实现骨骼动画,用到glaux,glut,包含身体各个部分:头文小腿,大腿,自定义运动角度

2022-06-15

osg(OpenSceneGraph)多窗口渲染

osg(OpenSceneGraph)多窗口渲染 在不同的窗口渲染不同的场景

2022-06-14

osg(OpenSceneGraph)添加纹理

osg(OpenSceneGraph)添加纹理 OSG为模型添加纹理图片共分为两种方式,一种是自动方式,一种自定义顶点方式设置纹理坐标。

2022-06-14

openGL曲面细分地形、高度图的细分

,在顶点着色器中执行高度贴图可能会遇到顶点数量不足以用来渲染所需的细 节的情况。现在我们有了生成大量顶点的方法,让我们回到Hastings-Trew 的月球表面纹理 贴图[HT16]并将其用作高度贴图,提升曲面细分顶点来生成月球表面细节。正如我们将看到 的,这具有一些优点,可以让顶点的几何形状更好地匹配月亮图像,并且提升轮廓(边缘) 细节。

2022-05-02

opengl贝塞尔曲面细分,win7+VS017,win10+vs2019版本

opengl贝塞尔曲面细分,win7+VS017,win10+vs2019版本 现在让我们扩展我们的程序,使它将我们简单的矩形网格转换为贝塞尔曲面。细分网格 应该为我们提供了足够的顶点来对曲面进行采样(如果我们想要更多的话,我们可以增加 内部/外部细分级别)。我们现在需要的是通过管线发送控制点,然后使用这些控制点执行计 算以将细分网格转换为我们所需的贝塞尔曲面。

2022-04-25

opengl贝塞尔曲面细分

现在让我们扩展我们的程序,使它将我们简单的矩形网格转换为贝塞尔曲面。细分网格 应该为我们提供了足够的顶点来对曲面进行采样(如果我们想要更多的话,我们可以增加 内部/外部细分级别)。我们现在需要的是通过管线发送控制点,然后使用这些控制点执行计 算以将细分网格转换为我们所需的贝塞尔曲面。 假设我们希望建立一个立方体贝塞尔曲面,我们将需要16 个控制点。我们可以通过VBO 从C++端发送它们,或者我们可以在顶点着色器中硬编码写死它们。 现在是更准确地解释曲面细分控制着色器(TCS)如何工作的好时机。与顶点着色器类 似,TCS 对每个传入顶点执行一次。另外,回想一下第2 章,OpenGL 提供了一个名为 gl_VertexID 的内置变量,它保存一个计数器,指示顶点着色器当前正在执行哪次调用。曲 面细分控制着色器中存在一个类似的内置变量gl_InvocationID。 曲面细分的一个强大功能是TCS(以及TES)着色器可以同时访问数组中的所有控制 点顶点。首先,当每个调用都可以访问所有顶点时,TCS 对每个顶点执行一次可能会让人 感到困惑。在每个TCS 调用中,冗余地在赋值语句中指定曲面细分级

2022-04-12

OpenGL 对硬件曲面细分的支持,通过3 个管线阶段提供: (1)曲面细分控制着色器; (2)曲面细分器; (3)曲面细分评估

OpenGL 对硬件曲面细分的支持,通过3 个管线阶段提供: (1)曲面细分控制着色器; (2)曲面细分器; (3)曲面细分评估着色器。 (1)C++/OpenGL 应用程序: 创建一个摄像机和相关的MVP 矩阵,视图(v)和投影(p)矩阵确定摄像机朝向,模 型(m)矩阵可用于修改网格的位置和方向。 (2)顶点着色器: 在这个例子中基本上什么都不做,顶点将在曲面细分器中生成。 (3)曲面细分控制着色器: 指定曲面细分器要构建的网格。 (4)曲面细分评估着色器: 将MVP 矩阵应用于网格中的顶点。 (5)片段着色器: 只需为每个像素输出固定颜色。 曲面细分器生成由两个参数定义的顶点网格:内层级别和外层级别。在这种情况下, 内层级别为12,外层级别为6——网格的外边缘被分为6 段,而跨越内部的线被分为 12 段。 程序12.1 中的特别相关的新结构被高亮显示。让我们首先讨论第一部分——C++/ OpenGL 代码。 编译这两个新着色器,跟顶点和片段着色器完全相同。然后将它们附加到同一个渲染程 序,并且链接调用保持不变。唯一的新项目是用于指定要实例化的着色器类型的常量——新 常量如下: G

2022-04-09

openGL增强表面细节,模拟地球表面地形

1.openGL增强表面细节,模拟地球表面地形,使用高度贴图实现 2.现在我们扩展法线贴图的概念——从纹理图像用于扰动法向量到扰乱顶点位置本身。实 际上,以这种方式修改对象的几何体具有一定的优势,例如使表面特征沿着对象的边缘可 见,并使特征能够响应阴影贴图。我们将会看到,它还可以帮助构建地形。 3.一种实用的方法是使用纹理图像来存储高度值,然后使用该高度值来提升(或降低)顶 点位置。含有高度信息的图像称为高度图,使用高度图更改对象的顶点的方法称为高度贴 图①。高度图通常将高度信息编码为灰度颜色:(0,0,0)(黑色)=低高度,(1,1,1)(白色)=高高度。这样一来通过算法或使用“画图”程序就可以轻松创建高度图。图像的对比度越 高,其表示的高度变化越大 4.改变顶点位置是否有用取决于改变的模型。顶点操作可以在顶点着色器中轻松完成,当 模型顶点细节级别够高(例如在足够高精度的球体中)时,改变顶点高度的方法效果很好。 但是,当模型的顶点数量很少(例如立方体的角)时,渲染对象的表面需要依赖于光栅器 中的顶点插值来填充细节。当顶点着色器中可用于改变高度的顶点很少时,许多像素的高 度将无法从高度

2022-03-26

openGL高度贴图,使用纹理图像来存储高度值,然后使用该高度值来提升(或降低)顶 点位置。

1.现在我们扩展法线贴图的概念——从纹理图像用于扰动法向量到扰乱顶点位置本身。实 际上,以这种方式修改对象的几何体具有一定的优势,例如使表面特征沿着对象的边缘可 见,并使特征能够响应阴影贴图。我们将会看到,它还可以帮助构建地形。 2.openGL高度贴图,使用纹理图像来存储高度值,然后使用该高度值来提升(或降低)顶 点位置。含有高度信息的图像称为高度图,使用高度图更改对象的顶点的方法称为高度贴 图 3. 高度图通常将高度信息编码为灰度颜色:(0,0,0)(黑色)=低高度,(1,1,1)(白色)=高高度。这样一来通过算法或使用“画图”程序就可以轻松创建高度图。图像的对比度越高,其表示的高度变化越大。 4.改变顶点位置是否有用取决于改变的模型。顶点操作可以在顶点着色器中轻松完成,当 模型顶点细节级别够高(例如在足够高精度的球体中)时,改变顶点高度的方法效果很好。但是,当模型的顶点数量很少(例如立方体的角)时,渲染对象的表面需要依赖于光栅器中的顶点插值来填充细节。 5.当顶点着色器中可用于改变高度的顶点很少时,许多像素的高 度将无法从高度图中检索,而需要由插值生成,从而导致表面细节较差。当然

2022-03-26

openGL法线贴图混合纹理贴图以达到更好的物体表面细节

openGL法线贴图混合纹理贴图以达到更好的物体表面细节 1.凹凸贴图是使用数学公式产生物体表面凹凸特效 2.凹凸贴图的一种替代方法是使用查找表来替换法向量 3.一种使用查找表的常见方法叫作法线贴图。 4.法线贴图使用一个图像文件(称为法线贴图),该图像文件包含在光照下所期望表面外 观的法向量。

2022-03-20

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除