KlayGE-001-简介

news/2024/5/19 4:23:04/文章来源:https://blog.csdn.net/kasteluo/article/details/129974024

在这里插入图片描述

KlayGE 引擎学习-001

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-lWlSlet9-1680688988724)(images/KlayGE_logo.png)]

一、KlayGE引擎介绍

软件简介

KlayGE中文译为:粘土游戏引擎,是一个开源、跨平台,基于插件结构的游戏引擎。该引擎从 2003 年开始研发,设计目的是用最先进的技术武装引擎,使游戏的开发、测试、移植得到简化。

该引擎是国人龚敏敏开发!

技术特性:

  • 图形

    • 支持 DirectX 11-12.0,OpenGL 2.0-4.6,以及 OpenGL ES 2.0

    • 采用 fxml 作为可渲染物体的特效脚本,可以直接把美工生成的特效导出使用

    • Python 脚本可以在运行期动态解释,所以修改脚本以后不需要重新编译

    • 可以通过高度图来建立地形场景

    • 支持骨骼动画

    • 硬件遮挡裁减

    • 粒子系统

    • 后处理技术

    • 自适应硬件状态缓存和延迟更新机制

    • 支持逐像素光照和渲染技术

    • 基于距离场的字体系统,兼有矢量字体和点阵字体的优点
      支持过程纹理

    • 支持次表面散射,可用于渲染树叶、皮肤、玉器等半透明材质

    • 支持 PN Triangles 技术,在运行期自动光滑低模

  • 着色

    • ·包含常用操作的 shader
    • 完全抽象出图形 API
    • 多遍渲染
    • 完全支持可编程着色
    • 可以使用多条渲染流
  • 光照

    • 动态光照
    • 全方向阴影贴图
  • 音频

    • 支持各种平台的音频输出
    • 支持 3D 声音定位和多普勒效应
    • 输入格式支持 Ogg Vorbis
    • 支持流式播放
  • 工具

    • 法线图生成器,可以从高度图生成法线图
    • 距离图生成器,可以从高度图或 3D 纹理生成距离图
    • MeshML 导出插件,从 3ds Max 导出模型
    • OpenGL 兼容性检测工具
      HDR 压缩器,支持 cubemap 和 2D HDR 纹理的压缩
    • Normalmap 压缩器,2:1 或 4:1 的压缩率
    • 基于 distance 的字体生成器,可以把矢量字体转换成引擎使用的字体格式
    • FXML2Shader 工具,把 FXML 的特效脚本转换成 HLSL 或 Cg
  • 程序特性

    • KlayGE 是开放源代码的,包含了 100% 的引擎、工具的源代码。
    • 可扩展的、面向对象的 C++ 引擎,带有用于静态和动态加载代码和资源的软件架构,易于移植和调试。
    • 用 Python 作为脚本语言,提供了对动态数据的自动支持,开发调试方便,并很容易和 C++ 主程序配合工作。

二、主要模块介绍

KlayGE的设计也比较容易理解,大体分成以下几部分:

  • DXBC2GLSL DX-GLSL shader转换工具

  • External: 第三方扩展依赖库

    • 7z:压缩
    • assimp: 外部模型导入
    • D3dCompiler: dx HLSL 编译工具
    • fmt:
    • FreeImage:
    • freetype
    • goolgetest: 测试框架
    • libogg: 音频
    • liborbis:
    • openal-soft
    • Python
    • zlib
  • glloader: OpenGL API 接口加载

  • KFL: 基础公共库

  • kfont: 字体库

  • KlayGE: 引擎库

    • Engine: 引擎主体

      • Core

        • KlayGE_Core

        • KlayGE_RC

        • TableGen

      • KGEConfig

      • Plugins

        • Audio
          • KlayGE_AudioDataSource_NullAudioDataSource
          • KlayGE_AudioDataSource_OggVorbis
          • KlayGE_AudioEngine_NullAudio
          • KlayGE_AudioEngine_OpenAL
          • KlayGE_AudioEngine_XAudio
        • Devhelper
          • KlayGE_DevHelper
        • Render
        • KlayGE_RenderEngine_D3D11
        • KlayGE_RenderEngine_D3D12
        • KlayGE_RenderEngine_NullRender
        • KlayGE_RenderEngine_OpenGL
        • Input
          • KlayGE_InputEngine_MsgInput
          • KlayGE_InputEngine_NullInput
        • Scene Management
          • KlayGE_Scene_OCTree
        • Script
          • KlayGE_ScriptEngine_NullScript
          • KlayGE_ScriptEngine_Python
        • Show
          • KlayGE_ShowEngine_DShow
          • KlayGE_ShowEngine_MFShow
          • KlayGE_ShowEngine_NullShow
    • Samples

      • AreaLighting
      • AtmosphericScattering
      • CascadedShadowMap
      • CausticsMap
      • DeepGBuffers
      • DeferredRendering
      • DetailedSurface
      • DetailedSurfaceDR
      • EnvLighting
      • Foliage
      • GPUParticleSystem
      • JudaTexViewer
      • Metalness
      • Metalness
      • MotionBlurDoF
      • Ocean
      • OIT
      • ParticleEditor
      • PostProcessing
      • ProceduralTex
      • Reflection
      • SampleCommon
      • ScenePlayer
      • ShadowCubeMap
      • SkinnedMesh
      • Sound
      • SSSSS
      • SubSurface
      • Text
      • VDMParticle
      • VectorTex
      • VideoTexture
    • Tests

      • Tests
    • Tools

      • KGEditor

        • KGEditor
        • KGEditorCore
        • KGEditorCoreWrapper
      • MtlEditor

        • MtlEditor
        • MtlEditorCore
        • MtlEditorCoreWrapper
      • TexViewer

        • TexViewer
        • TexViewerCore
        • TexViewerCoreWrapper
      • ColorGradingTexGen

      • D3DCompilerWrapper

      • DistanceMapCreator

      • FFTLensEffectsGen

      • Fxml2Shader

      • FxmlJit

      • GLCompatibility

      • GLESCompatibility

      • HDRCompressor

      • HWCollect

      • ImposterGen

      • JudaTexPacker

      • KFontGen

      • NoiseTexGen

      • Normal2NaLength

      • PlatformDeployer

      • PrefilterCube

      • Tex2JTML

      • ToolCommon

      • VectorTexGen

    • Tutorials

      • DistanceMapping

      • Fractal

      • InputCaps

      • RasterizationOrder

      • Refract

      • Tessellation

      • Tutor1

      • Tutor2

      • VertexDisplacement

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_283866.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

6-MATLAB APP Design-表格组件(uitable)

此博文通过MATLAB APP Design实现对学生成绩的处理,具体的功能包括读取表格数据、添加学生数据、计算总成绩、成绩排序+以及表格的保存。 一、APP 界面设计展示 1. 在画布中拖入面板、表格和四个按钮,布局如下。将面板的title写为“学生成绩计算器”并居中,将四个按钮的t…

游戏开发之Unity2021熟悉基本工具

接上一节通用渲染管线项目搭建 导入天空盒素材:在窗口中选择资源商店后会弹出下面的图片,在资源商店中找到我们想要的天空盒素材,将素材在unity中打开,如下面的第二幅图中就是我选择的天空盒素材,在这里可能会遇到一个…

Centos7搭建Ngrok内网穿透

一、安装gcc和git(用于下载ngrok源码) yum install gcc -y yum install git -y 二、安装go语言环境 yum install -y mercurial git bzr subversion golang golang-pkg-windows-amd64 golang-pkg-windows-386 三、检查环境安装 git --version //( > 1.7 ) go version 四…

通读《技术管理实战36讲》1、自我倾听篇

你好,我是小Z,一个工作在交付前线的程序员,我们正在通读《技术管理实战36讲》,作者刘建国。今天我们要梳理的章节是“自我倾听篇”。 在第1篇《多年前的那些工程师都去哪了?》中, 作者借助上周的“老知道人…

linux系统中cat命令的详细用法

在Linux中,cat命令是一个很常用的命令,它的作用是将文件内容输出到屏幕上,或者将多个文件合并成一个文件。下面是cat命令的一些常用用法: ​1. 显示文件内容 使用cat命令可以打印出文件的内容,如: cat fi…

[Qt 教程之Widgets模块] —— QFormLayout表单布局

Qt系列教程总目录 文章目录一、创建QFormLayout二、成员函数2.1. 对行操作2.2. 操作布局项2.3. 间距2.4. 设置布局规则2.5. 对齐方式表单布局 QFormLayout 以两列形式布局其子项。左列由标签组成,右列由小部件(行编辑器、数字调整框等)组成。…

FPGA实现图像去雾 基于暗通道先验算法 纯verilog代码加速 提供2套工程源码和技术支持

目录1、前言2、目前我这里已有的图像处理方案3、暗通道先验算法介绍4、本图像去雾模块的优缺点5、vivado工程详解vivado工程1详解vivado工程2详解6、上板调试验证7、福利:工程源码获取1、前言 本文详细描述了FPGA实现图像去雾的实现设计方案,采用暗通道…

C++文件加密篇(基于char数组进行可逆加密)

严格意义上的加密算法有对称加密算法和非对称加密算法,对称加密算法是指加密与解密的key相同,而非对称加密算法是指加密(使用公钥,所有人都可以获取)与解密(使用私钥,只有指定方有私钥&#xff…

Robosense激光雷达Linux配置

文章目录1.1 速腾rs16连接:1.2 网络配置1)官方说明2)设置网络3)检查是否连接成功2.1 激光雷达ROS包下载/编译1)下载ROS包2)安装libpcap依赖3)修改编译模式4)config文件配置5)编译并运…

【数据结构与算法】一、数据结构的基本概念

文章目录一、数据结构的基本概念1.1 数据结构的研究内容1.2 数据类型和抽象数据类型1.3 算法和算法分析1.3.1 算法的时间复杂度1.3.2 算法时间效率的比较1.4 知识回顾一、数据结构的基本概念 1.1 数据结构的研究内容 1.2 数据类型和抽象数据类型 抽象数据类型(ADT…

[入门必看]数据结构4.1:串的定义和实现

[入门必看]数据结构4.1:串的定义和实现第四章 串4.1 串的定义和实现知识总览4.1.1_串的定义和基本操作4.1.2_串的存储结构4.1.1_串的定义和基本操作串的定义串 V.S 线性表串的基本操作串的比较操作字符集编码4.1.2_串的存储结构串的顺序存储串的链式存储基本操作的实…

4月9日第壹简报,星期日,农历闰二月十九

4月9日第壹简报,星期日,农历闰二月十九坚持阅读,静待花开1. “2023中国品牌女性500强”榜单揭晓,屠呦呦、张桂梅、董明珠、刘洋、孟晚舟、谷爱凌等入选。2. 京东集团副总裁:将在今年发布“京东版”ChatGPT。3. 以冒名顶…

大数据Flink进阶(十八):Flink执行图和TaskSlot问题思考

文章目录 Flink执行图和TaskSlot问题思考 一、Flink执行图 二、TaskSlot问题思考 Flink执行图和TaskSlot问题思考 一、Flink执行图 Flink代码提交到集群执行时最终会被转换成task分布式的在各个节点上运行,在前面我们学习到DataFlow数据流图

智能座舱操作系统|Flyme Auto-魅族 Flyme Auto“上车”领克08,能帮助吉利汽车打赢智能座舱战吗

“没有手机软件赋能的汽车厂商都将逐渐掉队。” 3月30日晚,星际魅族集团董事长兼首席执行官沈子瑜在魅族领克无界生态发布会上直言,魅族Flyme Auto车机操作系统要让手机成为汽车的一部分,成为定义传统汽车五个域之外的第六域——手机域。 魅族Flyme Auto已经预热多时且备受…

什么是服务架构?微服务架构的优势又是什么?

文章目录1.1 单体架构1.2 微服务架构1.3 单体架构和微服务架构的区分1.4 两种服务架构的优劣点1.4.1 单体架构1.4.2 微服务架构1.5 总结1.1 单体架构 单体架构(Monolithic Architecture)是一种传统的应用程序架构模式,它指的是将一个应用程序…

Android 11.0 原生SystemUI下拉通知栏UI背景设置为圆角背景的定制(二)

1.前言 在11.0的系统rom定制化开发中,在原生系统SystemUI下拉状态栏的下拉通知栏的背景默认是白色四角的背景, 由于在产品设计中,在对下拉通知栏通知的背景需要把四角背景默认改成圆角背景,所以就需要分析系统原生下拉通知栏的每条通知的默认背景, 然后通过systemui的通知…

相机的内参和外参介绍

注:以下相机内参与外参介绍除来自网络整理外全部来自于《视觉SLAM十四讲从理论到实践 第2版》中的第5讲:相机与图像,为了方便查看,我将每节合并到了一幅图像中 相机与摄像机区别:相机着重于拍摄静态图像&#x…

2019年 团体程序设计天梯赛——题解集

前言: Hello各位童学大家好!😊😊,茫茫题海你我相遇即是缘分呐,或许日复一日的刷题已经让你感到疲惫甚至厌倦了,但是我们真的真的已经达到了我们自身极限了吗?少一点自我感动&#xf…

Linux常用指令【文件目录操作】

linux 文件目录操作指令pwd 指令ls 指令cd 指令mkdir 指令rmdir 指令touch 指令cp 指令rm 指令mv 指令cat 指令more 指令less 指令> 和 >> 指令echo 指令head 指令tail 指令ln 指令history 指令pwd 指令 基本语法 pwd (显示当前工作目录的绝对路径) ls 指令 基本语法…

大数据项目实战之数据仓库:电商数据仓库系统——第2章 数据仓库建模概述

第2章 数据仓库建模概述 2.1 数据仓库建模的意义 如果把数据看作图书馆里的书,我们希望看到它们在书架上分门别类地放置;如果把数据看作城市的建筑,我们希望城市规划布局合理;如果把数据看作电脑文件和文件夹,我们希…