網友評分: 5.3分
KlayGE游戲引擎是一個跨平臺、開源的游戲引擎,是用于下一代游戲的一個完整的游戲開發框架,用C++開發的,使用Python作腳本語言,采用API無關的插件式結構,提供了很多先進技術,并且有無限的擴展性,所提供框架使游戲的開發、測試、移植得到簡化。
1、圖形
支持D3D 11.2,OpenGL 2.1-4.5和OpenGL ES 2.0-3.1
采用fxml作為可渲染物體的特效腳本,可以直接把美工生成的特效導出使用
Python腳本可以在運行期動態解釋,所以修改腳本以后不需要重新編譯
可以通過height map來建立地形場景
支持骨骼動畫
硬件Occlusion culling
粒子系統
Post processing技術
自適應硬件狀態緩存和延遲更新機制
支持逐像素光照和渲染技術
基于distance的字體系統,兼有矢量和點陣的優點
支持Procedural texture
支持Subsurface Scattering,可用于渲染樹葉、皮膚、玉器等半透明材質
支持Phong tessellation技術,在運行期自動光滑低模
2、音頻
支持各種平臺的音頻輸出
支持3D聲音定位和多普勒效應
輸入格式支持Ogg Vorbis
支持流式播放
3、工具
法線圖生成器,可以從高度圖生成法線圖
距離圖生成器,可以從高度圖或3D紋理生成距離圖
MeshML導出插件,從3DS Max導出模型
OpenGL兼容性檢測工具
HDR壓縮器,支持cubemap和2D HDR紋理的壓縮
Normal map壓縮器,2:1或4:1的壓縮率
基于distance的字體生成器,可以把矢量字體轉換成引擎使用的字體格式
FXML2Shader工具,把FXML的特效腳本轉換成HLSL或Cg
5、程序特性
引擎是開放源代碼的,包含了100%的引擎、工具的源代碼
可擴展的、面向對象的C++引擎,帶有用于靜態和動態加載代碼和資源的軟件架構,易于移植和調試
用Python作為腳本語言,提供了對動態數據的自動支持,開發調試方便,并很容易和C++主程序配合工作
第一步:生成大位圖
在KFontGen中,這一步是通過freetype讀取矢量字體,渲染一張4096×4096的灰度圖。
第二步:輪廓搜索
freetype生成的灰度圖是經過光柵化的,也就是說字的輪廓和內部都進行了填充。我們只關心輪廓本身,所以在這一步,我們需要提取出它的輪廓,也就是同時滿足
該元素的值不為0
該元素的8個相鄰元素存在0
這兩個條件的元素。把輪廓元素標識為1,其他標示為0,就可以提取到輪廓。
第三步:得到distance field
一般來說,目標字體大小遠遠小于4096×4096。所以這里需要把對上一步得到的大位圖進行離散采樣,得到目標字體大小的點陣。在默認情況 下,KFontGen生成的目標字體大小是32×32。也就是說,從(64, 64)開始,x和y方向分別每隔128采一個點。分別計算這些采樣點到輪廓的最近距離,這樣得到的就是一個32×32的distance field。同時,在采樣的時候,根據步驟一得到的灰度圖可以判斷一個采樣點是否在字內,如果在字內,這個距離就是正數,否則就是負數。由此可以得到所要 的signed distance field。
第四步:量化和壓縮
上一步得到的distance field每一個元素都是個float的數據,需要量化成每個元素8位,以減少空間占用,加速渲染。量化之后的數據經過LZMA壓縮后存入文件中。
Unity3D(3D游戲開發引擎軟件) V2018.2 官方版 555M | 多國語言 | 8.5
詳情Unity3D(游戲開發引擎) V2017 官方正式版 256.18M | 多國語言 | 8.1
詳情Microsoft XNA Framework V3.1 免費版 6.58M | 簡體中文 | 7.6
詳情Unity3D(游戲開發工具) V5.5.of3 官方版 1.4M | 簡體中文 | 10
詳情CocoStudio V3.10 官方版 465M | 簡體中文 | 8
詳情UnrealEngine4破解版 32/64位 中文免費版 2.96G | 簡體中文 | 1.3
詳情