Unigine引擎深入研究
文章平均质量分 77
深入研究Unigine引擎。从源代码到工程。
拉达曼迪斯II
担任过
动视暴雪技术总监
UnigineEngine技术总监
Garena Team Leader
腾讯高级开发
主要擅长三维引擎 云渲染 数字孪生 区块链
AI 机器人方向。
欢迎技术交流。
展开
-
自反射 RAG 管道:如何实现?
人工智能中的自反射 RAG(检索增强生成)管道是指一种自适应和自我改进的系统,它结合了信息检索和语言生成过程,以提供更准确和特定于上下文的响应。明确的用户反馈:系统可能会要求用户根据量表对生成的响应的质量或有用性进行评分,或者用户可以通过评论、喜欢或不喜欢来提供直接反馈。这可能涉及一些技术,例如根据用户反馈对检索到的文档进行重新排序,或使用反馈作为额外的训练信号对检索模型进行微调。通过这些方法收集用户反馈和性能指标,自我反思的 RAG 管道可以识别其优势和劣势,并做出必要的调整以改善其整体性能和用户体验。原创 2024-08-09 15:54:30 · 588 阅读 · 0 评论 -
Windows Sandbox 体系结构
借助此方案,Windows Sandbox 可以从完整的 Windows 安装启动,而无需下载或存储额外的 Windows 副本。由于 Windows Sandbox 运行与主机相同的操作系统映像,因此它通过一种称为“直接映射”的技术增强了对操作系统二进制文件使用与主机相同的物理内存页面的能力。与传统虚拟机相比,主机和沙盒之间的内存共享可减少内存占用,而不会泄露宝贵的主机机密。indows Sandbox 受益于 Windows 中的新容器技术,实现了传统虚拟机无法实现的安全性、密度和性能的组合。原创 2024-07-27 00:00:00 · 39 阅读 · 0 评论 -
剑和沙盒 5 - Sandboxie的技术架构
安全性是 Chromium 最重要的目标之一。安全性的关键在于理解:只有充分理解系统在所有可能状态下所有可能输入组合的行为,我们才能真正保护系统。对于像 Chromium 这样庞大而多样化的代码库,推断其所有部分的组合行为几乎是不可能的。沙盒的目标是提供硬性保证,无论输入是什么,一段代码最终可以做什么或不能做什么。沙盒利用操作系统提供的安全性来允许执行无法对计算机进行持久更改或访问机密信息的代码。沙盒提供的架构和确切保证取决于操作系统。本文档涵盖 Windows 实现以及一般设计。原创 2024-07-26 10:49:38 · 39 阅读 · 0 评论 -
剑和沙盒 4 - 编译Sandboxie源代码
获取下来后,主工程在目录Sandboxie中。原创 2024-07-26 00:00:00 · 62 阅读 · 0 评论 -
三维重建 概论
通俗来讲,三维重建就是将2D的数据生成3D的模型。首先将2D的物体,通过各种方法,算法形成几何网格对象,同时用深度信息,处理远近,遮罩等关系,形成最终的3D模型。在计算机视觉中,三维重建是指根据单视图或者多视图图像重建原始三维信息的过程。单视图缺少深度、多视角信息,基于单视图的三维重建效果较一般。基于多视角图像的三维重建,充分利用了多视角拍摄信息,其先对摄像机进行标定并计算出摄像机的图像坐标系与世界坐标系的关系,然后利用多个二维图像重建出三维信息。原创 2024-07-26 00:00:00 · 43 阅读 · 0 评论 -
Unigine心得之村长的野望1 - 键盘鼠标控制物体移动
前几日写了一个小DEMO用到键盘用ASDW等按键控制一个物体的上下左右移动和旋转等操作。2:我的代码操作的是mSelectedNode,这个节点对象请自行准备。但相信可以作用在几乎所有的Unigine版本中。因为都是基础操作函数。//用aswd控制上下左右的位置变化,参考游戏控制。这个是一个非常基础的简单控制,但是查询官方文档也是很吃力。因此,分享在此处,方便大家不用闭门造车,重复造车。//用wr控制左侧旋转和右侧。//有当前对象才操作。1:移动旋转速度,自行控制。//设置旋转和移动的速度。原创 2024-07-18 16:57:23 · 926 阅读 · 0 评论 -
智慧城市遐想
此外,当我们谈论在虚拟环境中重建一个真实的城市时,我们需要记住大量的数据源,例如:数字高程模型、地形卫星图像、激光雷达扫描数据、无人机捕捉正射影像的数据(由摄影图树算法识别)、地标建筑的手工制作的 3D 模型、从专业软件导入的 BIM 模型。但是,一个饱受苦难的城市的基本需求是什么?一切始于你走出建筑时:交通系统(无论你开车还是乘坐公共交通)、建筑的形状和配置、阳光的缺乏、空气的质量、你工作的楼宇的位置、休闲区的稀缺、服务业中充斥着不守规矩的人——所有这些都使城市成为一个相当不适合居住的地方。原创 2024-07-18 10:14:02 · 574 阅读 · 0 评论 -
Unigine中綫程操作和鎖的情況
一般的,我们在C++中有互斥锁mutex , 条件锁,自旋锁SpinLock , 读写锁RWLock .当然还有一些基于mutex的锁,C++11中提供的有:std::mutex,最基本的 Mutex 类。 std::recursive_mutex,递归 Mutex 类。 std::time_mutex,定时 Mutex 类。 std::recursive_timed_mutex,定时递归 Mutex 类。Lock有2类std::lock_guard,与 Mutex RAII 相关,方便原创 2020-05-13 20:58:52 · 277 阅读 · 0 评论 -
Unigine中如何使用回调函数
Unigine中的回调函数使用很方便。1:)可以使用多达默认5个参数的回调函数2:)可以不要求类函数申明为静态函数3:)直接在Unigine的Include目录中拿到 CallBack.h头文件,调用即可使用。你的其余程序也可以这么做。测试代码如下:class TestClass{public: TestClass() { } void TestCallbackMethodA() { printf("I am cal...原创 2020-05-11 15:27:44 · 221 阅读 · 0 评论 -
Unigine中的ComponentSystem系统如何使用
ComponentSystem的代码结构图如下ComponentSystem的总体方法和Unity3D中的ComponentSystem类似,该系统将可以添加多个类实现到一个对象中。使得程序的逻辑可以分块在不同的地方。其具体行为类似于插件系统,但比插件方便很多。因为节点对象,可以绑定多个 Component类实现,同时,又可以在源代码级别进行分解。使用非常方便。截至Unigine ...原创 2020-05-03 16:23:15 · 651 阅读 · 0 评论 -
Unigine免费了
Unigine这个强大的3D引擎,拥有足以挑战Unreal的光影效果,最近终于发出免费版本了。其收费版本高达百万元,有免费的版本迫不及待的想试试。直接上官方网站www.unigine.com点击Get Unigine, 其中点击Free Download弹出的窗口,填写简单的信息,和邮箱,就可以下载SDK Browser下载器进行下载SDK了。记得邮箱要确认账号信息哦...原创 2020-04-16 23:10:21 · 1917 阅读 · 0 评论 -
Unigine中的INFINITY到底是多大
INFINITY这个宏,在很多场合下被默认,较常用的是设置LOD时。最大或最小。它的实际值是1e+9f查了下科学计数法,就是1.0*10的9次方,这样换算下来就是1 后面11个0 ,也就是100亿。...原创 2020-04-10 11:09:10 · 523 阅读 · 0 评论 -
Unigine中如何显示中文内容
在Unigine中是支持中文显示的。主要做法内容如下:1)将中文字体放入data目录下,任意位置都可以,格式必须是ttf .2) 调用Unigine::Gui::get()->setFont("你刚才使用的字体名字");之后类似下面的代码做给演示 Unigine::Gui::get()->setFont("ZCOOLXiaoWei-Regular.ttf");...原创 2020-03-07 17:19:35 · 462 阅读 · 0 评论 -
Unigine源代码分析
Unigine是一款不错的3D引擎。主要方向是仿真。其实天才才能写出如此好的引擎。我个人并不觉得比UE和U3D 逊色。同时又比开源的很多引擎OSG,OGRE,irrlicht, 等等商业化程度很多。稳定很多。在一些网上,你可以买到早期大约是2013年左右泄漏的源代码,但是离现在7年了,软件这东西,没有持续的维护,实质上已经意义不大。所以我们只说最新的源代码2.X开始版本。Unigi...原创 2020-03-03 00:03:12 · 1835 阅读 · 1 评论 -
Unigine简介
Unigine简介Unigine是一款强大的3D 仿真引擎。拥有完全不逊于其余商业3D引擎的渲染和表现能力。Unigine 以SDK的方式,提供给广大的技术爱好者,项目制作者,研究学者等,以通用的C/C++及灵活的脚本等开发方式针对各行业的3D应用产品和项目。Unigine拥有接近真实照片级画质的渲染效果,有着足以骄傲的成熟的着色,光照,大气,和众多高级特殊效果。主要的特性诸如:...原创 2020-02-06 12:43:20 · 3954 阅读 · 6 评论 -
如何新建一个CLR为主的能用C++的UI程序
创建一个空项目 添加一个WINFORM添加一个CPP文件,里面写上MAIN函数的定义配置2个地方这里的main 名字要和.cpp中的入口函数一致这样配置后,DOS的窗口就没有了MainForm中的C++部分这样写 (只是为了以后写C++程序)如果由于项目依赖其余的C++库或者文件,导致编译错误很多,无法通过。可以这样。...原创 2020-02-02 13:56:34 · 490 阅读 · 0 评论 -
如何去掉Unigine中的启动Console
当我们运行Unigine的程序的时候,一般的会有一个Console,如下图其原因是: 这种模式下的程序,在C++项目配置中设备为了Console模式Unigine运行的窗口是Unigine自身CreateWindow出来的窗口。所以实质上Console才是宿主,无法关闭。如果硬要关闭怎么操作呢?1: 设置程序模式为窗口模式,如下图:2 ...原创 2020-02-02 13:55:00 · 324 阅读 · 0 评论