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

QT-地形3D

QT-地形3D

  • 一、 演示效果
  • 二、关键程序
  • 三、下载链接

一、 演示效果

请添加图片描述
请添加图片描述

请添加图片描述

二、关键程序


#include "ShaderProgram.h"namespace t3d::core
{void ShaderProgram::init()
{initializeOpenGLFunctions();loadShaders();
}void ShaderProgram::addShader(const QString &filename, QOpenGLShader::ShaderType shaderType)
{QOpenGLShader *shader = new QOpenGLShader(shaderType, mProgram.get());if (!shader->compileSourceFile(gDefaultPathShaders + filename))qDebug() << "Error compiling shader " << filename << " of type "<< static_cast<int>(shaderType);if (!mProgram->addShader(shader))qDebug() << "Error adding shader " << filename << " of type "<< static_cast<int>(shaderType);
}void ShaderProgram::loadShaders()
{mProgram = makeUnique<QOpenGLShaderProgram>();addShaders();if (mProgram->link() == false)qFatal("Problem linking shaders");elseqDebug() << "Initialized shaders";mProgram->bind();queryUniformLocations();refreshUniformValues();flushQueuedUniformValueChanges();mProgram->release();
}bool ShaderProgram::bind()
{if (!mProgram->bind()){System::warn("Unable to bind OpenGL ShaderProgram");return false;}flushQueuedUniformValueChanges();return true;
}void ShaderProgram::reloadShaders()
{loadShaders();
}void ShaderProgram::enqueueUniformValueChange(const GLint *uniformLocation, QVariant value)
{if (mProgram && mProgram->isLinked()){mProgram->bind();setUniformFromQVariant(*uniformLocation, value);mProgram->release(); // TODO this can cause issues if used while the program was bound// externally}elsemQueuedUniformValueChanges.append(QPair<const GLint *, QVariant>(uniformLocation, value));
}void ShaderProgram::setUniformFromQVariant(GLint location, QVariant &value)
{switch (static_cast<QMetaType::Type>(value.type())){case QMetaType::Int:mProgram->setUniformValue(location, static_cast<GLint>(value.toInt()));break;case QMetaType::Double:mProgram->setUniformValue(location, static_cast<GLfloat>(value.toDouble()));break;case QMetaType::Float:mProgram->setUniformValue(location, static_cast<GLfloat>(value.toFloat()));break;default:qFatal("Trying to set a queued shader uniform value for an unknown type");// TODO this is all we support. Eventuall QOpenGLShaderProgram should support// setUniformValue directly from a QVariant.}
}void ShaderProgram::flushQueuedUniformValueChanges()
{for (auto pair : mQueuedUniformValueChanges){setUniformFromQVariant(*pair.first, pair.second);}mQueuedUniformValueChanges.clear();
}}

三、下载链接

https://download.csdn.net/download/u013083044/88850945

相关文章:

QT-地形3D

QT-地形3D 一、 演示效果二、关键程序三、下载链接 一、 演示效果 二、关键程序 #include "ShaderProgram.h"namespace t3d::core {void ShaderProgram::init() {initializeOpenGLFunctions();loadShaders(); }void ShaderProgram::addShader(const QString &fil…...

C++拷贝构造函数与赋值运算符重载

顾得泉&#xff1a;个人主页 个人专栏&#xff1a;《Linux操作系统》 《C从入门到精通》 《LeedCode刷题》 键盘敲烂&#xff0c;年薪百万&#xff01; 一、拷贝构造函数 1.概念 在现实生活中&#xff0c;可能存在一个与你一样的自己&#xff0c;我们称其为双胞胎。 那在创…...

全球各国海外媒体发稿新闻营销推广,英美德意法俄日韩多语言

【本篇由言同数字科技有限公司原创】随着全球市场化程度的加深&#xff0c;品牌出海成为越来越多企业的战略选择。而全球各国媒体的发稿&#xff0c;为品牌出海提供了重要的支持与推动。 第一部分&#xff1a;品牌出海的意义 品牌出海是指企业将自己的品牌、产品和服务推向全…...

将phantomjs制成docker镜像

几个前的一篇文章中介绍了phantomjsecharts生成图表图片的一种方式&#xff0c;但其部署复杂&#xff0c;制作为docker镜像运行就方便多了。文章参见&#xff1a;https://blog.csdn.net/u011943534/article/details/121524397 1、准备echarts 将上次文章中提到过下载的Echart…...

【LeetCode+JavaGuide打卡】Day20|530.二叉搜索树的最小绝对差、501.二叉搜索树中的众数、236. 二叉树的最近公共祖先

学习目标&#xff1a; 530.二叉搜索树的最小绝对差 501.二叉搜索树中的众数 236. 二叉树的最近公共祖先 学习内容&#xff1a; 530.二叉搜索树的最小绝对差 题目链接&&文章讲解 给你一个二叉搜索树的根节点 root &#xff0c;返回 树中任意两不同节点值之间的最小差值…...

【工具类】开源照片管理工具pthtoprism

1. pthtoprism 1. pthtoprism 1.1. 安装1.2. 管理照片方式 1.2.1. 直接管理原始照片目录1.2.2. 导入照片 1.3. 界面功能1.4. 参考资料 1.1. 安装 wget https://dl.photoprism.app/docker/docker-compose.yml # 修改 docker-compose.yml 文件&#xff0c;具体参考下面内容 d…...

[ linux网络 ] 网关服务器搭建,综合应用SNAT、DNAT转换,dhcp分配、dns分离解析,nfs网络共享以及ssh免密登录

实验准备工作&#xff1a; 网关服务器安装&#xff1a;dhcp bind &#xff08;yum install -y dhcp bind bind-utlis&#xff09; server1安装&#xff1a;httpd (yum install -y httpd) 没有网络就搭建本地yum仓库或者配置网卡使其能够上网。 ( 1&#xff09;网关服务器…...

MySQL全量备份

一、实验素材 1.创建student和score表 (1) student表 create database school; use schoolCREATE TABLE student ( id INT(10) NOT NULL UNIQUE PRIMARY KEY , name VARCHAR(20) NOT NULL , sex VARCHAR(4) , birth YEAR, department VARCHAR(20) , address VARCHAR(50) );(…...

【Linux系统化学习】动静态库 | 软硬链接

目录 硬链接和软链接 硬链接 软链接 动态库和静态库 静态库 静态库的生成 静态库的使用 将库打包和使用 动态库 动态库的生成 动态库的使用 库搜索路径 硬链接和软链接 硬链接 上篇文章我们说到真正找到磁盘上的文件并不是文件名&#xff0c;而是inode。其实在…...

linux-firewalld防火墙端口转发

目的:通过统一地址实现对外同一地址暴露 1.系统配置文件开启 ipv4 端口转发 echo "net.ipv4.ip_forward 1" >> /etc/sysctl.confsysctl -p 2.查看防火墙配置端口转发之前的状态 firewall-cmd --statefirewall-cmd --list-all 3.开启 IP 伪装 firewall-cm…...

adobe软件提示This non-genuine Adobe app will be disabled soon【软件版本】

因为电脑上级路由器装了小飞机&#xff0c;导致本机电脑ps等adobe的系列软件出现了 This non-genuine Adobe app will be disabled soon&#xff0c;烦人的狠&#xff0c;之前有写过一篇通过更改host的教程&#xff0c;现在已经失效了&#xff0c;今天为大家分享一个用软件来屏…...

python coding with ChatGPT 打卡第20天| 二叉搜索树:搜索、验证、最小绝对差、众数

相关推荐 python coding with ChatGPT 打卡第12天| 二叉树&#xff1a;理论基础 python coding with ChatGPT 打卡第13天| 二叉树的深度优先遍历 python coding with ChatGPT 打卡第14天| 二叉树的广度优先遍历 python coding with ChatGPT 打卡第15天| 二叉树&#xff1a;翻转…...

Stable Diffusion——基础模型、VAE、LORA、Embedding各个模型的介绍与使用方法

前言 Stable Diffusion&#xff08;稳定扩散&#xff09;是一种生成模型&#xff0c;基于扩散过程来生成高质量的图像。它通过一个渐进过程&#xff0c;从一个简单的噪声开始&#xff0c;逐步转变成目标图像&#xff0c;生成高保真度的图像。这个模型的基础版本是基于扩散过程…...

Python自动化部署与配置管理:Ansible与Docker

Ansible 和 Docker 是两种常用于自动化部署和配置管理的工具。Ansible 是一个基于 Python 的自动化运维工具&#xff0c;可以配置管理、应用部署、任务自动化等。而 Docker 是一个开源的应用容器引擎&#xff0c;让开发者可以打包他们的应用以及依赖包到一个可移植的容器中&…...

《摔跤吧爸爸》19岁女星突患皮肌炎离世

从确诊到离世仅10天……罕见病“皮肌炎”&#xff01; 曾凭借在知名电影《摔跤吧&#xff01;爸爸》中饰演童年时期“小芭比塔”一角而广受喜爱的年轻演员苏哈尼巴特纳格尔不幸离世&#xff0c;年仅19岁。她的突然逝世引发了全球关注&#xff0c;据苏哈妮的家人表示&#xff0…...

用结构体数组,完成宠物信息登记管理。

管理宠物的名字&#xff0c;品种&#xff0c;年龄。 实现功能如下: 1.插入宠物信息 2.遍历宠物信息 #include <stdio.h> #define N 100 typedef struct chongwu { char name[20]; char pingz[10]; int age; }cw; void intset_cw(cw *ptr,int *pnum) { printf("请…...

频率主义线性回归和贝叶斯线性回归

整体概述 频率主义&#xff08;Frequentist&#xff09;线性回归和贝叶斯&#xff08;Bayesian&#xff09;线性回归是统计学中用于数据分析和预测的两种主要方法&#xff0c;特别是在建模关于因变量和自变量之间线性关系的上下文中。尽管两种方法都用于线性回归分析&#xff…...

【感知算法】Dempster-Shafer理论(下)

尝试DS理论应用到自动驾驶地图众包更新。 地图特征变化判断 a mass function is applied to quantify the evidence of the existence. existence state: existenct、non-existent、tenative、conflict ∃ ∄ Ω ϕ \exist \\ \not\exist \\ \Omega \\ \phi ∃∃Ωϕ ma…...

通过conda安装cudatoolikit和cudnn

通过conda安装cudatoolikit和cudnn 安装cudatoolkit安装cudnn安装cudatoolkit-dev 安装cudatoolkit conda install cudatoolkit11.3 -c https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/ 安装cudnn conda install cudnn8.5 -c https://mirrors.tuna.tsinghua.edu.…...

vue中使用jsx语法

请注意&#xff0c;在 Vue 中使用 JSX 时&#xff0c;你仍然需要通过 h 函数&#xff08;通常是一个别名&#xff0c;对应于 createElement 函数&#xff09;来创建虚拟 DOM 元素。在下面的例子中&#xff0c;h 函数作为 render 函数的参数传入&#xff0c;但在 JSX 语法中你通…...

抖音内容自动化下载:3大技术挑战与实战解决方案

抖音内容自动化下载&#xff1a;3大技术挑战与实战解决方案 【免费下载链接】douyin-downloader A practical Douyin downloader for both single-item and profile batch downloads, with progress display, retries, SQLite deduplication, and browser fallback support. 抖…...

Triton模型服务化:构建高可用AI推理生产系统

1. 项目概述&#xff1a;当模型走出Jupyter&#xff0c;真正开始呼吸真实世界空气“From Notebook to Production: Running ML in the Real World (Part 4)”——这个标题本身就像一句暗号&#xff0c;专为那些在Jupyter里调通了模型、画出了漂亮ROC曲线、却在部署时被生产环境…...

可靠度理论导向的海床稳定性分析及评价方法【附仿真】

✨ 长期致力于可靠度、海床稳定性、随机场、响应面法、概率框架、随机有限元法研究工作&#xff0c;擅长数据搜集与处理、建模仿真、程序编写、仿真设计。 ✅ 专业定制毕设、代码 ✅ 如需沟通交流&#xff0c;点击《获取方式》 &#xff08;1&#xff09;Karhunen-Love展开三维…...

HeyGen免费额度怎么用最值?我用1个积分做了个多语言口播视频(附保姆级教程)

HeyGen免费额度高效使用指南&#xff1a;1积分打造多语言口播视频 第一次接触HeyGen时&#xff0c;我被它逼真的口型同步技术震撼了——直到发现免费账户只有1个积分。这就像得到一颗钻石却只能刮一次玻璃。经过两周的反复测试&#xff0c;我总结出一套**"1积分最大化&quo…...

5-8倍加速:ncnn 3×3卷积模块

5-8倍加速&#xff1a;ncnn 33矩阵卷积模块 我把腾讯ncnn的33卷积从手工循环替换成了自己的算法&#xff08;Im2Col GEMM&#xff09;&#xff0c;实测加速5到8倍。 适用于大通道数&#xff08;inch≥16, outch≥32&#xff09;、大分辨率特征图、服务端推理场景。小通道建议…...

手把手教你修复‘MsBuild.exe不是内部或外部命令’(附Win10/Win11环境变量配置详解)

手把手教你解决‘MsBuild.exe不是内部或外部命令’问题 第一次在命令行里敲下msbuild却看到系统报错"不是内部或外部命令"时&#xff0c;那种挫败感我至今记忆犹新。作为.NET开发者必备的核心工具&#xff0c;MSBuild的配置问题困扰过无数新手。本文将用最直观的方式…...

《Sysinternals实战指南》ZoomIt 学习笔记(11.12):LiveZoom 实时放大——无闪屏放大与多屏演示技巧

&#x1f525;个人主页&#xff1a;杨利杰YJlio❄️个人专栏&#xff1a;《Sysinternals实战教程》《Windows PowerShell 实战》《WINDOWS教程》《IOS教程》《微信助手》《锤子助手》 《Python》 《Kali Linux》 《那些年未解决的Windows疑难杂症》&#x1f31f; 让复杂的事情更…...

GitLab CVE-2025-1477:URI编码绕过身份验证的应急防护指南

1. 这个漏洞不是“修个补丁就完事”的普通问题GitLab 安全漏洞 CVE-2025-1477&#xff0c;光看编号容易误以为是又一个常规的权限绕过或信息泄露类CVE——毕竟GitLab每年披露几十个中低危漏洞&#xff0c;运维同学看到CVE编号第一反应往往是查CVSS评分、翻官方通告、打补丁、走…...

2026央国企求职哪家强?TOP机构帮你稳住铁饭碗!

引言综述随着 2026 届超 1200 万毕业生涌入就业市场&#xff0c;央国企岗位竞争愈发激烈&#xff0c;岗位竞争比持续攀升。在这样的大环境下&#xff0c;求职者的核心需求集中在系统备考规划、精准岗位匹配以及高保障面试辅导上。本次测评旨在为求职者提供客观、专业的机构对比…...

用 MinIO 搭建 S3 兼容对象存储服务

用 MinIO 搭建 S3 兼容对象存储服务 分类&#xff1a;开源项目部署 MinIO 适合附件、备份归档和 S3 兼容对象文件。这类主题真正跑起来并不难&#xff0c;难的是上线后稳定、可备份、能排错。本文按实操方式整理一套可以直接落地的流程&#xff0c;默认你已经会登录 Linux 服务…...