1.[3D游戏开发实践] Cocos Cyberpunk 源码解读-目录结构
2.MMDetection3D之DETR3D源码解析:整体流程篇
3.[3D游戏开发实践] Cocos Cyberpunk 源码解读-开篇
4.3d稀疏卷积——spconv源码剖析(五)
5.vue2项目 echarts实现3D地图 map3D
[3D游戏开发实践] Cocos Cyberpunk 源码解读-目录结构
在深入解读Cocos Cyberpunk源码之前,示源首先,示源让我们打开scene-game-start场景,示源启动游戏预览,示源进入游戏场景。示源点击START按钮,示源mfc框架程序源码游戏正式开始。示源漫游摄像机将带你漫游整个场景,示源再次点击START,示源可以进入游戏。示源
在电脑端按ESC键或手机端点击设置按钮,示源查看操作说明。示源接下来,示源让我们浏览Cocos Cyberpunk项目的示源目录结构。在左下角的示源Assets窗口中,我们可以看到项目文件的分层。
首先,animations目录中仅包含用于场景漫游的摄像机动画文件。LightFX目录存储了光照贴图,广告机软件源码这些是光照烘焙系统自动生成的,无需手动修改。res目录是整个游戏资源的集中地,包括动画、特效、模型、shader、UI、音效等资源。
resources目录则存放动态加载的资源,当前内容较少,随着游戏的完善,资源将会增多。scene目录包含了环境反射探针文件,与场景文件名对应的文件夹存放反射贴图。scene-development目录则包含一些用于单元测试的开发场景。
scripts目录存放所有游戏逻辑脚本,而src目录可能包含项目开发过程中的剧情 源码 帝国cms测试文件。test目录同样是用于测试的,存放的文件与项目无关。scene目录则是游戏主场景,而scene-game-start则为游戏启动场景,进行UI逻辑初始化,并加载游戏主场景。
自定义管线以编辑器扩展的形式存在,可将其移至项目中。管线对应自定义管线,通过在场景中新建节点并添加pipeline/graph/pipeline-graph.ts组件来查看可视化管线图。实时探针相关组件在反射探针节点上挂载,提供实时更新功能。
反射探针节点上的ReflectionUtils脚本组件实现了实时更新探针的逻辑,适用于需要实时探针的项目。此外,Cocos Cyberpunk还实现了SphereProjection修正,使得反射更符合物体形状。
静态遮挡剔除机制在Cocos Cyberpunk中实现,三联源码通过将可见关系预存入空间格子,渲染时直接查表获得渲染列表,极大提升效率。这一部分主要在scene场景中的static-occlusion-culling结点中处理。
机型适配策略在Cocos Cyberpunk中实现,根据设备性能选择渲染效果,确保流畅帧率。处理了不同设备上的效果调整,包括性能开关策略、机型分档策略,主要在href-settings.ts、gpu.ts和gpu-mobiles.ts文件中实现。
游戏逻辑方面,Cocos Cyberpunk包含完整的TPS游戏逻辑,init节点包含了特效、UI、对象池等节点,挂载的自我介绍源码init.ts脚本组件确保游戏逻辑在主场景加载后持续运行。接下来,我们将对游戏逻辑相关源码进行深入解读。
MMDetection3D之DETR3D源码解析:整体流程篇
关于torch.distributed.launch的更多细节: blog.csdn.net/magic_ll/...
设置config file和work dir,work dir保存最终config,log等信息,work dir默认为path/to/user/work_dir/
作者将自定义的部分放在 'projects/mmdet3d_plugin/' 文件夹下,通过registry类注册模块,这里利用importlib导入模块并初始化自定义的类。
这里设置模型的输出信息保存路径、gpus等模型的运行时环境参数
这里初始化模型,初始化train_dataset和val_dataset
这部分完成了DataLoader的初始化,runner和hooks的初始化,并且按照workflow运行runner。
[3D游戏开发实践] Cocos Cyberpunk 源码解读-开篇
Cocos Cyberpunk是Cocos引擎官方团队精心打造的一款完整开源第三人称射击类3D游戏,旨在展示引擎的重度3D游戏制作能力,增强社区的学习动力。此游戏支持Web、iOS、Android等多平台发布。
本系列文章将对Cocos Cyberpunk的源码进行深入解读,帮助读者提高学习效率,加速在3D游戏开发领域的进步。
如需获取源码,请访问工程源码免费下载页面。
麒麟鸽,即我,将在此系列文章中,分享如何在3D游戏开发过程中充分利用Cocos Cyberpunk的技术资产,包括但不限于:
完整TPS游戏核心
尽管角色控制尚有提升空间,Cocos Cyberpunk已具备完整的射击游戏逻辑,可作为学习资源或项目开发的基础。
机型适配机制
3D游戏对设备性能要求较高,Cocos Cyberpunk中实现了机型分档和性能开关策略,帮助开发者在不同设备上调整画质和保持帧率。
自定义管线
借助Cocos Creator 3.7提供的全新自定义管线,Cocos Cyberpunk实现了一个良好的隔离性解决方案,可直接复用或作为研究新管线的案例。
加强版反射探针
预先烘焙的反射探针,简化了物体反射周围景物的实现,且性能优化显著,是不可多得的实用特性。
静态遮挡剔除(PVS-SOC)
通过预存可见关系,Cocos Cyberpunk实现了快速渲染物体的机制,尤其适用于建筑密集的场景,显著提升了效率。
更多技术资产
考虑到时间有限,Cocos Cyberpunk中未使用光照探针和LOD,但未来我将寻找合适案例进行分享。我相信,此项目还蕴含更多技术宝藏等待挖掘。
在接下来的文章中,我将深入研究以上技术点,并与大家共同探讨学习,期望能为你的3D游戏开发之路提供助力。
3d稀疏卷积——spconv源码剖析(五)
介绍在构建的Rulebook指导下执行特定的稀疏卷积计算,关注于类SparseConvolution,其代码位于spconv/conv.py。
Fsp.indice_subm_conv和Fsp.indice_conv经过spconv/functional.py中的SubMConvFunction和SparseConvFunction对象转换,最终会调用spconv/ops.py模块中的indice_conv等函数。
专注于子流线卷积接口:indice_subm_conv,其代码位于spconv/functional.py。
通过Python接口调用底层C++函数可能不够直观,因此使用torch.autograd.Function封装算子底层调用,该类表示PyTorch中的可导函数,具备前向推理和反向传播实现时,即可作为普通PyTorch函数使用。
值得注意的是,Function类在模型部署中具有优势,若定义了symbolic静态方法,此Function在执行torch.onnx.export()时,可依据symbolic定义规则转换为ONNX算子。
apply方法是torch.autograd.Function的一部分,此方法负责在前向推理或反向传播时的调度工作。通过将indice_subm_conv = SubMConvFunction.apply简化为indice_subm_conv接口,简化了算子使用,屏蔽了SubMConvFunction的具体实现。
SubMConvFunction的前向传播方法forward调用spconv/ops.py的indice_conv函数。在src/spconv/all.cc文件中,通过PyTorch提供的OP Register对底层C++API进行注册。
通过torch.ops.load_library加载.so文件,使用torch.ops.spconv.indice_conv调用src/spconv/spconv_ops.cc文件中的indiceConv函数。
深入探索src/spconv/spconv_ops.cc文件中的indiceConv函数。
代写部分代码内容...
vue2项目 echarts实现3D地图 map3D
首先,需要安装echarts和echarts-gl插件。接着,在Vue组件中引入echarts和echarts-gl。然后,创建一个div容器来展示地图。在Vue组件的mounted生命周期函数中,初始化echarts并绘制地图。
但是,在完成上述步骤后,常常会遇到报错问题。经过排查,发现原因在于版本不兼容。echarts和echarts-gl插件需要满足特定的版本要求才能实现3D效果,并且两者之间也需要匹配。具体匹配的版本信息如下:
源码
最终,地图的显示效果如下: