Skip to content

johnson3d/titan3d

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

编译运行环境

  • Titan3D 启动!
  • 总览图
  • 1.安装2022
  • 2.安装C#开发环境
  • 3.建议安装C#移动开发环境

引擎特色

  • 1.C++/C#混合编程,C++作为底层,C#作为上层,通过自动胶水代码产生,C#可以完成完整调用C++功能
  • 2.基于协程(Coroutines)的多线程构架,告别Callback Hell
  • 3.基于宏图的图形化脚本构架,用户可以0代码实现超复杂游戏逻辑
  • 4.完全用户自定义渲染管线,通过编辑器编辑RenderGraph,通过C#扩展RenderGraphNode,真正做到用户需要的一切效果都自定制
  • 5.自带多进程服务器集群构架,大型MMO项目可用
  • 6.基于HLSL的Shading开发,全平台Shader反射后统一了渲染资源绑定,是最接近原生DX开发用户习惯的模式

支持特性

  • 1.支持DX11,DX12,Vulkan,OpenGLES(废弃)
  • 2.支持Windows,Android平台
  • 3.Amplification Shader,Mesh Shader,RayTracing Shader
  • 4.图形化编辑器配置RenderGraph资产,引擎自带DeferredShading和MobileShading配置RenderGraph资产
  • 5.图形化Material Shader编辑器
  • 6.InGame UI编辑器支持2D,3D游戏UI编辑
  • 7.GpuScene+IndirectDraw+Bindless为基础的GpuDriven框架
  • 8.粒子系统,采用图形化逻辑编辑,支持CPU,GPU粒子切换
  • 9.SDF字体,放缩友好
  • 10.基于Node的场景编辑器,世界大纲可以为任何Node设置C#脚本
  • 11.图形化动作状态机,和宏图配合完成游戏逻辑
  • 12.图形化脚本编辑器,宏图(Macross)系统几乎可以全功能实现引擎项目功能
  • 13.内嵌RenderDoc,可以config配置
  • 14.基于TCP/IP的RPC网络通讯,自带超大型服务器集群构架
  • 15.采用双精度坐标,支持CDLOD地形,先天无限世界圣体
  • 16.Excel数据自动映射数据结构,自动读写
  • 17.插件动态加载卸载,游戏,引擎功能都可通过插件扩展
  • 18.专用的prefab编辑器

当前缺省RenderGraph支持典型节点列表

总览图 一切都渲染流程都是节点链接配置出来,所以不要问引擎支持什么渲染特性,扩充和组合节点决定了最终的渲染管线效果

  • 1.CullClusterNode,SwRastererizeNode,QuakResolveNode等一系列节点,用来实现软光栅渲染(尚未完全完成)
  • 2.Hzb,depth clip map用来做深度裁剪
  • 3.CpuCulling,在CPU内处理出可见Node列表
  • 4.DeferredBassPass,延迟渲染,3或者4RT输出,最后一个velocity输出可配置
  • 5.ShadowMap,经典CSM阴影
  • 6.ScreenTiling,屏幕分块,目前主要记录影响的点光源
  • 7.AdvShadow,基于QTree Clip Map的大范围阴影处理
  • 6.DirLighting,平行光等的PBR延迟着色
  • 7.Forward,前向节点,主要处理半透明一类的渲染
  • 8.Particle,用来处理粒子系统的驱动和渲染
  • 9.AvgBright,HDR用来处理动态光照tonemapping,eye adapter
  • 10.Picked,PickBlur,PickHollow,PickHollowBlend,HitProxy用来处理编辑器等的像素点选
  • 11.ScreenSpaceUI,用来处理屏幕空间UI渲染(3d UI直接在base pass或者forward中处理)
  • 12.其他效果节点
    • 1.VoxelNode,从视口创建稀疏体素
    • 2.FogNode,高度雾
    • 3.LuminanceThredhole,提取亮度区间
    • 4.Bloom,顾名思义
    • 5.Additive,叠加颜色
    • 6.SunShaftDepthThreshole,SunShaftRadialBlur用来做God Ray的系列节点
    • 7.Taa,时域反走样,和前面输出的velocity配合使用

编译构建

Windows编译引擎

  1. 第一次编译引擎,很多时候需要单独调试运行CppWeavingTools和CSharpCodeTools两个工程一次,确保codegen下面NativeBinder和Cs2Cpp目录产生了必要的临时cpp,cs文件
  2. 如果第一次产生NativeBinder失败,有可能需要安装llvm
  3. 编译Core.Window工程(C++)
  4. 编译Engine.Window工程(C#)
  5. 编译MainEditor工程(C#)
  6. 第一次可能需要手工编译下列插件工程
    • SourceGit
    • DataCopyer
  1. 因为github的LFS限制,可能需要手工解压一些压缩文件,清单如下
    • binaries\Tools\net8.0\libclang.7z

Windows编译Android APK

  1. 编译Core.Android工程(C++)
  2. 编译Engine.Android程(C#)

调试与运行

  1. 设置MainEditor为当前项目
  2. 调试命令行参数为config=$(SolutionDir)content\EngineConfig.cfg use_renderdoc=false
  3. 调试工作目录为$(SolutionDir)binaries\
  4. 运行与调试,请阅读引擎配置与编辑器使用文档
  5. 遇到一些奇怪IO相关Crash或者异常,可以尝试删除本地cache目录

开发者注意事项

  1. 不要提交大文件(20M以上),避免lfs使用
  2. 常用代码
  3. 新增加了C++的Bricks一定要记得添加对应宏,否则会C#找不到C++函数,方法参阅注意事项2

控制台程序

特殊参数

  • 1.ExeCmd=决定执行的命令
  • 2.ExtraCmd={n}这个n是确定启动后,控制台可以输入的参数个数

保存资产到最新

  • 保存指定资产到最新版本,解决MetaVersion爆炸问题 ExeCmd=SaveAsLastest AssetType=Scene+Mesh+Material+MaterialInst+Texture CookCfg=$(SolutionDir)content\EngineConfigForCook.cfg

启动Root服务器

  • 方法1:ExeCmd=StartRootServer CookCfg=$(SolutionDir)content\EngineConfigForRootServer.cfg
  • 方法2:ExtraCmd=1 CookCfg=$(SolutionDir)content\EngineConfigForRootServer.cfg 在控制台输入ExeCmd=StartRootServer

启动Login服务器

  • 方法1:ExeCmd=StartLoginServer CookCfg=$(SolutionDir)content\EngineConfigForRootServer.cfg
  • 方法2:ExtraCmd=1 CookCfg=$(SolutionDir)content\EngineConfigForRootServer.cfg 在控制台输入ExeCmd=StartLoginServer

升级CppWeavingTools

  • 升级Nuget的libclang,本机查找Microsoft Visual Studio\2022\Enterprise\VC\Tools\Llvm\x64\bin拷贝到binaries\Tools\对应.net版本
  • 右键libClangSharp查看nuget文件位置

授权许可证

About

一个通用3d游戏引擎

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 2

  •  
  •