开放世界地形渲染:以三角洲行动为例(下篇)
- 本文主要介绍如何提升室外画面渲染的品质
版权声明
- 本文为“优梦创客”原创文章,您可以自由转载,但必须加入完整的版权声明
- 文章内容不得删减、修改、演绎
- 本文视频版本:见文末
渲染品质提升
- 要提升画面的品质,就是去提升渲染的画面效果和细节度,主要包括以下几个方面:
- 动态效果
- 悬崖峭壁
- 远景的细节渲染
- 地面的贴花处理
动态效果
- 动态效果是指使整个场景看上去更有生气,主要包括地形的颜色变化,湿度变化以及明暗的变化,使其看上去更逼真,让地形没有很严重的塑料感
颜色变化:染色
- 首先看一看颜色变化怎么实现,地形颜色的变化可以通过染色的方式实现
- 那什么叫染色呢?大家先通过下图看一下有没有进行染色的差别(左边是染色的效果,右边是没有染色的效果)
- 染色原理就是在地面上刷了地形的顶点颜色,使地形染上了想表达的颜色
- 染色需要用到一些刷顶点色的工具,怎么刷顶点色呢?可以参考一下我其他文章的分享内容
Clipmap
- 如果地图比较大,那么地形要渲染的顶点数量就会比较多,之前分享过一种方式,就是根据地形的高低起伏和远近进行LOD,这里介绍另一种方式---Clipmap
- Clipmap的原理是把靠角色比较近的三角形面片渲染的比较精细,越远的位置渲染的越粗略
- 并且渲染策略是会随着离当前摄像机,也就是离的角色距离越远,渲染效果就会越降低一个层级。这个类似于贴图的Mipmap技术,其实顶点绘制也有Mipmap这个功能
- 下图显示了RenderDoc分析的优化效果
湿度变化:潮湿度
- 第二个提升动态效果的方式是表现地形的湿度变化
- 湿度变化其实也是刷顶点,就是用顶点刷绘制哪些部分是潮湿的
- 需要注意潮湿和干燥的地形之间需要一个过渡,这个过渡是通过控制笔刷的轻重产生一个权重的变化,从而实现边缘过渡的效果
染色:湖泊+积水
- 可以看一下染色的另外一种表现,对于湖泊或者是积水,它可以通过对地形进行顶点色的绘制来染色
染色:草
- 看一下染色在草上面的变化
- 在渲染这些草的时候,可以表现地面上面这些草颜色变化
- 这个颜色变化也是通过刷草的颜色来实现的,刷草的颜色其实跟刷地形、刷头发(参考文末“头发渲染”)是一样的,都是通过顶点绘制来实现的
- 再介绍一种简单的方法,如果某一块地形草的颜色是红色(如图红圈所示),可以在绘制地形的时候,专门建立一张贴图,把这张贴图画成红色,就表示这一块的草是用红颜色来进行绘制
染色:树木
- 染色还可以在场景里面用来表现树木
- 树木的实现可以通过一种叫做Billboard也就是公告版技术,但是公告板渲染树木会有点不真实的感觉
- 可以用另外一种方式---Impostor,Impostor就是用替身的方式实现,对于这块内容感兴趣可以关注一下我,我后面也会进行分享
峭壁渲染
- 下面看看峭壁渲染这块,主要是三平面渲染的内容
- 对于这种侧边的地面,如果不进行特殊处理,其实就是把地形贴图的一个切面在地形上面进行拉伸,这种方式拉伸以后效果就比较差
- 怎么样去表现这些峭壁细节呢?就需要使用三平面渲染的方式,对侧面仍然进行贴图的绘制,但是在进行贴图绘制的时候使用的UV坐标采样的方式是不一样的
- 它不仅可以从地面进行采样,也可以从侧面进行贴图的采样,因此不会出现走样的问题
- 上图展示了用三平面影射跟和不用的区别,如果不用的话,那么本来贴地面贴的很好的纹理在贴侧面的时候就会被拉伸。如果使用了三平面纹理影射,就不会有这个问题了
- 因为三平面纹理影射需要采样三次,所以性能开销也会更大,所以还可以再用一种技术---基于重要性的三平面纹理影射采样进行优化
- 在我的一个项目里面,在进行瀑布渲染的时候,也是采用了三平面影射的方式,因为瀑布是从上垂直流到地面,然后到水面,所以也需要用三平面影射才不会出现走样
- 对于这个项目有兴趣的可以看一下参考,联系Alice交流学习
近景细节提升
- 近景的细节提升主要是指地面的贴花,比如地面的裂痕,就是使用贴花实现的
- 贴花有两种,一种是世界空间贴花,一种是对象空间贴花,想要更详细的学习可以看看我其他的分享。这里地面的贴花用世界空间贴花就可以了
- 贴花本质上只是一张贴图,所以如果走近之后,从侧面看,而不是从顶上看,就会发现就是一张贴图
- 对于路边的这种小石子,如果想让它更加真实,那怎么办呢?就需要使用曲面细分的技术
- 可以观察到,如果用贴花实现看上去就不够真实,如果用曲面细分就会更加真实、立体
- 关于曲面细分的内容,可以参考一下进阶内容,这里篇幅有限,不再赘述
- 完整视频请点击本链接观看:https://www.bilibili.com/video/BV13ZGQzUE9a
- 更多技术干货alice17173
相关文章:
开放世界地形渲染:以三角洲行动为例(下篇)
本文主要介绍如何提升室外画面渲染的品质 版权声明 本文为“优梦创客”原创文章,您可以自由转载,但必须加入完整的版权声明文章内容不得删减、修改、演绎本文视频版本:见文末 渲染品质提升 要提升画面的品质,就是去提升渲染的画…...
GpuGeek 网络加速:破解 AI 开发中的 “最后一公里” 瓶颈
摘要: 网络延迟在AI开发中常被忽视,却严重影响效率。GpuGeek通过技术创新,提供学术资源访问和跨国数据交互的加速服务,助力开发者突破瓶颈。 目录 一、引言:当算力不再稀缺,网络瓶颈如何破局? …...
关于 Web安全:1. Web 安全基础知识
一、HTTP/HTTPS 协议详解 1. HTTP协议基础 什么是 HTTP? HTTP(HyperText Transfer Protocol)是互联网中浏览器和服务器之间传输数据的协议,基于请求-响应模式。它是一个无状态协议,意思是每次请求都是独立的&#x…...
debugfs:Linux 内核调试的利器
目录 一、什么是 debugfs?二、debugfs 的配置和启用方式2.1 内核配置选项2.2 挂载 debugfs2.3 Android 系统中的 debugfs 三、debugfs 的典型应用场景3.1 调试驱动开发3.2 内核子系统调试3.3 性能分析 四、常见 debugfs 子目录与功能示例4.1 /sys/kernel/debug/trac…...
Spyglass:跨时钟域同步(同步使能)
相关阅读 Spyglasshttps://blog.csdn.net/weixin_45791458/category_12828934.html?spm1001.2014.3001.5482 简介 同步使能方案主要用于数据信号跨时钟域同步,该方案将一个控制信号同步至目标时钟域并用其作为数据信号的捕获触发器的使能信号,如图1所示…...
安装Minikube
环境 CentOS7 参考 minikube start | minikube 创建虚拟机,参考 模拟Gitlab安装-CSDN博客 下载二进制包 curl -LO https://storage.googleapis.com/minikube/releases/latest/minikube-linux-amd64 报错不能解析host,配置host 下载成功 安装 sudo install minikube-linux-am…...
图像锐化调整
一、背景介绍 之前找多尺度做对比度增强时候,发现了一些锐化相关算法,正好本来也要整理锐化,这里就直接顺手对之前做过的锐化大概整理了下,方便后续用的时候直接抓了。 这里整理的锐化主要是两块:一个是参考论文&#…...
【CanMV K230】AI_CUBE1.4
《k230-AI 最近小伙伴有做模型的需求。所以我重新捡起来了。正好把之前没测过的测一下。 这次我们用的是全新版本。AICUBE1.4.dotnet环境9.0 注意AICUBE训练模型对硬件有所要求。最好使用独立显卡。 有小伙伴说集显也可以。emmmm可以试试哈 集显显存2G很勉强了。 我们依然用…...
STM32外设AD-定时器触发 + DMA读取模板
STM32外设AD-定时器触发 DMA读取模板 一,方法思路二,定时器基础与配置1,定时器时钟源 (Clock Source)2,预分频器 (Prescaler - PSC)3,自动重装载寄存器 (Auto-Reload Register - ARR) / 周期 (Period)4,触…...
数据库故障排查指南:从入门到精通
1. 常见数据库故障类型 1.1 连接故障 数据库连接超时连接池耗尽网络连接中断认证失败1.2 性能故障 查询执行缓慢内存使用过高CPU使用率异常磁盘I/O瓶颈1.3 数据故障 数据不一致数据丢失数据损坏事务失败2. 故障排查流程 2.1 初步诊断 -- 检查数据库状态SHOW STATUS;SHOW PRO…...
【AT32】 AT32 移植 Freemodbus 主站
基于野火开发板 at32f437zgt6芯片 和at32 官方开发工具 移植了网上一套开源的freemodbus 主站 这里对modbus 协议不做过多的讲解 主要已实现代码为主 AT32 Work Bench 参考之前我之前的配置 与stm32cubemx软件差不多 注意485芯片的收发脚配置即可 AT32 IDE 说实话这软件太垃…...
内网环境下如何使用ntpdate实时同步时间
背景介绍 NTP(Network Time Protocol)是一种网络协议,用于同步计算机系统的时间。ntpdate是一个用于手动同步时间的命令行工具,它可以从指定的NTP服务器获取当前时间并更新本地系统时间。 ntpdate 服务介绍 功能:ntp…...
python版本管理工具-pyenv轻松切换多个Python版本
在使用python环境开发时,相信肯定被使用版本所烦恼,在用第三方库时依赖兼容的python版本不一样,有没有一个能同时安装多个python并能自由切换的工具呢,那就是pyenv,让你可以轻松切换多个Python 版本。 pyenv是什么 p…...
工商总局可视化模版 – 基于ECharts的大数据可视化HTML源码
概述 在大数据时代,数据可视化已成为各行各业进行数据分析和决策的重要工具。幽络源今天为大家带来一款基于ECharts的工商总局数据可视化HTML模版,帮助开发者快速搭建专业级工商广告数据展示平台。这款模版设计规范,功能完善,适合…...
计算机网络 : 网络基础
计算机网络 : 网络基础 目录 计算机网络 : 网络基础引言1. 网络发展背景2. 初始协议2.1 初始协议2.2 协议分层2.2.1 软件分层的好处2.2.2 OSI七层模型2.2.3 TCP/IP五层(四层)模型 2.3 TCP/IP协议2.3.1TCP/IP协议与操作系统的关系&…...
eSwitch manager 简介
eSwitch manager 的定义和作用 eSwitch manager 通常指的是能够配置和管理 eSwitch(嵌入式交换机)的实体或接口。在 NVIDIA/Mellanox 的网络架构中,Physical Function(PF)在 switchdev 模式下充当 eSwitch manager&am…...
物联网技术在银行安全用电系统中的应用与实践研究
摘要 随着金融科技的快速发展,银行业电子设备数量激增,用电安全管理问题日益突出。本文基于2019年农业银行与2020年中国邮政储蓄银行发布的安全用电相关政策,分析了银行场景下存在的五大用电安全隐患,提出以物联网技术为核心的安…...
589. N叉树的前序遍历迭代法:null指针与栈的巧妙配合
一、题目描述 给定一个N叉树的根节点,返回其节点值的前序遍历结果。前序遍历的定义是:先访问根节点,再依次遍历每个子节点(从左到右)。例如,对于如下N叉树: 1/ | \3 2 4 / \ 5 6前序遍历结果…...
【洗车店专用软件】佳易王洗车店多项目会员管理系统:一卡多用扣次软件系统实操教程 #扣次洗车管理软件
一、软件试用版资源文件下载说明 (一)若您想体验软件功能,可通过以下方式获取软件试用版资源文件: 访问头像主页:进入作者头像主页,找到第一篇文章,点击文章最后的卡片按钮,即可了解…...
小红书笔记详情接口如何调用?实操讲解。
调用小红书笔记详情接口通常需要经过申请权限、构建请求、发送请求并处理响应等步骤,以下是详细的实操讲解: 一、申请接口权限 注册小红书开放平台账号 访问小红书开放平台官网/第三方开放平台,按照提示完成注册流程,提供必要的…...
leetcode 57. Insert Interval
题目描述 代码:由于intervals已经按照左端点排序,并且intervals中的区间全部不重叠,那么可以断定intervals中所有区间的右端点也已经是有序的。先二分查找intervals中第一个其右端点>newInterval左端点的区间。然后按照类似于56. Merge In…...
杰理ac696配置mic
省电容mic有概率不出声解决办法如下...
COMSOL随机参数化表面流体流动模拟
基于粗糙度表面的裂隙流研究对于理解地下水的流动、污染物传输以及与之相关的地质灾害(如滑坡)等方面具有重要意义。本研究通过蒙特卡洛方法生成随机表面形貌,并利用COMSOL Multiphysics对随机参数化表面的微尺度流体流动进行模拟。 参数化…...
Linux远程连接服务
远程连接服务器简介 远程连接服务器通过文字或图形接口方式来远程登录系统,让你在远程终端前登录linux主机以取得可操作主机接口(shell),而登录后的操作感觉就像是坐在系统前面一样。 远程连接服务器的功能 分享主机的运算能力 远…...
用Python绘制梦幻星空
用Python绘制梦幻星空 在这篇教程中,我们将学习如何使用Python创建一个美丽的星空场景。我们将使用Python的图形库Pygame和随机库来创建闪烁的星星、流星和月亮,打造一个动态的夜空效果。 项目概述 我们将实现以下功能: 创建深蓝色的夜…...
EWOMAIL
1、错误 Problem: problem with installed package selinux-policy-targeted-3.14.3-41.el8.noarch package fail2ban-server-1.0.2-3.el8.noarch requires (fail2ban-selinux if selinux-policy-targeted), but none of the providers can be installed - package fail2ban-…...
网安面试经(1)
1.说说IPsec VPN 答:IPsec VPN是利用IPsec协议构建的安全虚拟网络。它通过加密技术,在公共网络中创建加密隧道,确保数据传输的保密性、完整性和真实性。常用于企业分支互联和远程办公,能有效防范数据泄露与篡改,但部署…...
【每天一个知识点】意图传播(Intent Propagation)
在人工智能(AI)快速发展的背景下,自然语言处理(NLP)已成为推动智能系统理解与生成自然语言的核心技术。其中,“意图识别”作为人机交互的关键步骤,已被广泛应用于智能客服、对话系统、语音助手等场景。而“意图传播”(Intent Propagation)作为更深层的机制,逐渐成为当…...
【串流VR手势】Pico 4 Ultra Enterprise 在 SteamVR 企业串流中无法识别手势的问题排查与解决过程(Pico4UE串流手势问题)
写在前面的话 此前(用Pico 4U)接入了MRTK3,现项目落地需要部署,发现串流场景中,Pico4UE的企业串流无法正常识别手势。(一体机方式部署使用无问题) 花了半小时解决,怕忘,…...
工具:shell命令提示符自定义之显示GIT当前分支
1 背景 在命令行操作,每次想查看当前分支都要手动执行命令(git branch)太麻烦了,想着在命令提示符上面显示当前分支,很直观也很方便 2 实现 编辑 vim ~/.bashrc 文件,添加如下内容 function update_prom…...
现代计算机图形学Games101入门笔记(十四)
Irradiance 微小的能量/微小的面积 用Irradiance解释能量大小解释冬夏 Intensity没变,但是Irradiance是衰减的,外圈面积变大,单位面积上接受的能量就变小了。 入射进来 离开 这里就是从某个方向来了一个能量,经过反射,…...
前端开发笔记与实践
一、Vue 开发规范与响应式机制 1. 组件命名规范 自定义组件使用大驼峰命名法(如 MyComponent),符合 Vue 官方推荐,便于与原生 HTML 元素区分。 2. Proxy vs defineProperty 特性Proxy(Vue3)Object.defi…...
机器学习知识自然语言处理入门
一、引言:当文字遇上数学 —— 自然语言的数字化革命 在自然语言处理(NLP)的世界里,计算机要理解人类语言,首先需要将文字转化为数学向量。早期的 One-Hot 编码如同给每个词语分配一个唯一的 “房间号”,例…...
泰迪杯特等奖案例深度解析:基于多级二值化与CNN回归的车牌识别系统设计
(第八届泰迪杯数据挖掘挑战赛特等奖案例全流程拆解) 一、案例背景与核心挑战 1.1 行业痛点与场景需求 在智慧交通与无感支付场景中,车牌识别是核心环节。传统车牌识别系统在复杂光照、污损车牌、多角度倾斜等场景下存在显著缺陷。根据某智慧油站2024年运营数据显示,高峰期…...
ai agent(智能体)开发 python高级应用5:crawl4ai 如何建立一个全面的知识库 第一步找分类
让我们充分利用爬虫功能建立自己丰富的知识库, 第一步找分类 以下是一个层次分明、覆盖全面的知识库分类体系,分为9大主类、43个子类,并融入交叉学科和新兴领域设计: 一、经济与商业 宏观经济(全球经济/国家政策&a…...
Solon Ai Flow 编排开发框架发布预告(效果预览)
Solon Ai 在推出 Solon Ai Mcp 后,又将推出 Solon Ai Flow。 1、Solon Ai Flow 是个啥? Solon Ai Flow 是一个智能体编排开发框架。它是框架!不是工具,不是产品(这与市面上流行的工具和产品,有较大差别&a…...
【言语】刷题5(填空)
front:刷题5 第一个词排除人迹罕至 人迹罕至:很少有人去的地方。指偏僻荒涼的地方。(荒郊野岭既视感的一个词) 第二个空锁定B,太贴合语义了 第三个空排除一文不值,百无一用,现在这题已经可以过了…...
技术解码 | 腾讯云SRT弱网优化
随着互联网基础设施和硬件设备的不断发展。广大直播观众对于直播观看的清晰度,延时等方面的体验要求越来越高,直播也随之进入了低延迟高码率的时代,直播传输技术也面临着越来越高的要求和挑战。 腾讯视频云为此在全链路上针对流媒体传输不断深…...
“分布形态“
一、分布形态的基础分类 1、正态分布(对称分布) (1)特征:钟型曲线,均值=中位数=众数;约68%数据在μσ范围内,95%在μ2σ内。 (2)应用:身高、体重、测量误差等自然现象。 (3)重要性:多数统计方法(如T检验、方差分析)假设数据正态性。 2、偏态分布 (1)左偏(负…...
Android minSdk从21升级24后SO库异常
问题 minSdk从21调整到24后: java.nio.file.NoSuchFileException: /data/app/~~Z9s2NfuDdclOUwUBLKnk0A/com.rs.unity- Bg31QvFwF4qsCwv2XCqT-w/split_config.arm64_v8a.apkjava.nio.file.NoSuchFileException: /data/app/~~Z9s2NfuDdclOUwUBLKnk0A/com.rs.unity-…...
C#进阶(2)stack(栈)
前言 我们前面介绍了ArrayList,今天就介绍另一种数据结构——栈。 这是栈的基本形式,博主简单画了一下,你看个意思就行,很明显,这种数据有一种特征:先进后出。因为先进来的数据会在下面,下面是密闭的,所以只能取后面进来的。 C#为我们封好了这种数据结构,我们不用担…...
Linux du 命令终极指南:从基础到精通
文章目录 Linux du 命令终极指南:从基础到精通du 命令简介常用参数详解常见用法示例查看当前目录总大小查看当前目录及其子目录占用空间只显示当前目录总占用空间查看目录下每个文件和子目录的大小查看某目录深度为 1 的大小分布查看某目录并排除日志文件查看多个目…...
【Linux网络】数据链路层
数据链路层 用于两个设备(同一种数据链路节点)之间进行传递。 认识以太网 “以太网” 不是一种具体的网络,而是一种技术标准;既包含了数据链路层的内容,也包含了一些物理层的内容。例如:规定了网络拓扑结…...
水库雨水情测报与安全监测系统解决方案
一、方案概述 本水库雨水情测报与安全监测解决方案的核心目标在于利用尖端的技术手段,确保对水库雨水情势以及大坝安全状况的持续监控和及时预警,从而为水库的稳定运行提供坚实的支持和保障。该方案严格遵循“统筹协调、因库制宜、实用有效、信息共享”的…...
Shotcut:免费开源的视频编辑利器
Shotcut是一款功能强大且完全免费的开源视频编辑软件,专为需要高效、灵活视频编辑的用户设计。它支持多种常见视频格式,如MP4、AVI、MOV等,并提供了丰富的视频编辑功能,满足用户在不同场景下的需求。无论是初学者还是专业人士&…...
学习海康VisionMaster之直方图工具
一:进一步学习了 今天学习下VisionMaster中的直方图工具:就是统计在ROI范围内进行灰度级分布的统计 二:开始学习 1:什么是直方图工具? 直方图工具针对输入灰度图像的指定ROI区域,输出该区域的图像灰度直方…...
AI 笔记 -基于retinaface的FPN上采样替换为CARAFE
上采样替换为CARAFE 引言内容感知特征重组(CARAFE)公式化核预测模块 引言 简介:CARAFE(Content-Aware ReAssembly of FEatures),是用于增强卷积神经网络特征图的上采样方法,论文被 ICCV 2019 接…...
Visual Studio 2022 中添加“高级保存选项”及解决编码问题
文章目录 一、背景二、方法方法一:通过菜单栏手动添加(推荐)方法二:通过拖拽快速添加(替代方案) 三、验证与使用四、补充说明五、所能解决的问题 一、背景 VS 在开发cmake项目的过程中,可能会遇…...
SQLMesh 增量模型从入门到精通:5步实现高效数据处理
本文深入解析 SQLMesh 中的增量时间范围模型,介绍其核心原理、配置方法及高级特性。通过实际案例说明如何利用该模型提升数据加载效率,降低计算资源消耗,并提供配置示例与最佳实践建议,帮助读者在实际项目中有效应用这一强大功能。…...
嵌入式开发书籍推荐
嵌入式开发是将计算机技术、微电子技术与各行业应用相结合的综合技术,学习过程中需要多方面知识储备。以下精选书籍,从基础到进阶,助你系统掌握嵌入式开发知识。 基础理论类 《计算机组成原理》(唐朔飞版)࿱…...