,

Release v1.2 with VULKAN and METAL Support

Eric Developer Avatar

After a long development phase we’ve reached a long-term milestone.
We’ve implemented the rendering basis for METAL and VULKAN context rendering.

NOTICE: Even though a lot of features still missing and for sure not all of your projects might already work, it’s the beginning and took a lot of effort and refactoring we want to share!

Download & Install: https://gorilla3d.de/files/packages/13.1.0/Gorilla3D_Delphi_C%2B%2B_13.1.0_1.2.0.3656.zip

OR via our Installer-Tool: https://gorilla3d.de/download/Gorilla3DInstaller.zip

  • Vulkan Support:
    • GLSL to SPIR-V Conversion via ShaderC library
    • Basic rendering pipeline: Frame-Buffers, Uniform-Buffers, Mesh-Buffers, Texturing, WBOIT-Rendering, MSAA, Emission, DefaultMaterial, Reflection, Refraction, Material-Behaviours, Gorilla-Mesh rendering,  Instancing, animated models, gpu cached animations, 2D/cubemap textures, skybox component, water material, splatmap material
    • Not working yet:
      • textures added at design time – runtime loading works
      • other texture formats than BGRA
      • normal texture mapping (affects PBR, POM, Normal-Mapping)
      • 3D textures + Volume-Rendering
      • Particle-System
      • Global illumination
      • Render-Passes: Shadow-Mapping, FXAA, PostFX
      • Various Materials: TTextureMaterialSource, TLightMaterialSource
    • Activate it by including Gorilla.Context.Backend ” unit in your *.DPR and calling “ GorillaGraphicsBackend := gbVulkan; ” before “Application.Initialize”
    • Platform: Windows X64
  • Metal Support:
    • Metal Shader Language (MSL) support – NOT OPENGL!
    • GLSL shaders translated to MSL by embedded parser and translator
    • Write GLSL as you know it and Gorilla3D is taking care of it to convert it into MSL
    • Basic rendering pipeline: Frame-Buffers, Uniform-Buffers, Mesh-Buffers, Texturing, WBOIT-Rendering, DefaultMaterial, Material-Behaviours, Gorilla-Mesh rendering, Instancing, animated models, gpu cached animations, 2D/cubemap textures, skybox component
    • Not working yet: see above and further things like MSAA, FXAA, emission, reflection/refraction, water, splatmap, and more.
    • Platform: OSX64
  • NEW FEATURES:
    • 13.1 Support for Windows X86/X64, Android 32-/64-Bit, Linux X64, OSX64, Windows ARM64EC compilable (but no package support)
    • DesignTime Navigation:
      • ALT + left mouse button > orbit
      • ALT + right mouse button > shift on X/Z axis in camera direction
      • ALT + SHIFT + left mouse button > shift X/Y axis
      • Navigation speed configurable
    • Gizmo Control:
      • “G” key to switch between gizmo control and drag & drop mode
      • In gizmo mode: drag left mouse button /SHIFT/CTRL to move on axis
      • After a 3D object was selected in gizmo mode use ESC to leave editing
      • Step size configurable
    • High level input controller switchable by property
      • The original low-level input controller blocked at debug time
      • You can now switch to high level (slower) input detection without blocking
      • This is much better for debugging
    • OpenAL audio library implemented with support for MP3 and OGG Vorbis
      • TGorillaFMODAudioManager and TGorillaOpenALManager are now both inherited from TGorillaAudioManager
      • Sound and channel handling
      • Effect handling is platform dependent
    • Dialogue ImageList’s introduced: automatically load image references by <images><image /></images> tags and add an “image-index” attribute to dialogues and items to link
    • Default-Material: ShaderData has now a new property “Specs” to store additional texture info, like if it’s a normal-map
    • TerrainMaterial: Optional normal mapping:
      • Each level has now a sub-bitmap to load a normal map into
      • Relative/Untransformed and Absolute/Transformed Level-Detection
    • Audio Playlist non-visual and visual component
      • Gorilla.Audio.Playlist with TGorillaAudioPlaylist and manageble TPlaylistItem’s
      • FMOD & OpenAL Support
      • TAudioPlayerFrame now contains playlist management
    • TGorillaTimer: EnqueuedOnce introduced to enqueue only if the previous enqueued operation was handled
    • TGorillaMesh: multiple instance modification now encapsulatable by BeginInstancesEditing/EndInstancesEditing

  • BUGFIXES
    • TGorillaModel cached animations not working on multiple instances
    • TGorillaModel with cached animation only ended up invisible
    • TGorillaTerrainCVLOD: on-demand mesh generation
    • CharacterController height modification to make it more transparent
    • GorillaScript:
      • Performance optimization on loops and nested loops fixed
      • Scripting-Record type
      • Type-Support: Int64 and UInt8/UInt16/UInt32/UInt64
      • Property field method access fixed
      • Inherited method calls implemented for scripting objects
      • VAR/OUT/CONST parameters fixed
      • Floating point values with exponent (“e,E-/+123”) parsing fixed
      • New system functions: SizeOf, TypeName, TypeOf
    • Inventory groups also with images
    • SkillSystem ignoring comment tags within
    • TerrainMaterial: overblended transition area rendering issue fixed
    • TGorillaTerrain: picking / raytracing mechanism causing issues on selecting objects above
    • TGorillaDefaultMaterial: measure time issues with different platforms fixed
    • ScreenSpaceShadow rendering optimization
    • Duplicated FMOD audio sound playback crashed
    • TGorillaTimer: shutdown issues fixed

Eric Developer Avatar

More Articles & Posts