,

Gorilla3D 1.5.0.3914 – Faster, Smarter & Louder

Eric Developer Avatar

Gorilla3D 1.5 is out now, and it’s an important update again!

The highlights:

🚀 More performance – up to +19% draw throughput, much faster picking, and no more framerate drops caused by RecalcAbsolute
🗜️ Texture compression – up to 6:1 less GPU memory with a single line of code
🗣️ Voice in, voice out – built-in Text-to-Speech (Piper) and Speech-to-Text (Whisper, Vosk)
🎮 Arena Multiplayer – a new framework for multiplayer games via Tethering and game server support
📐 Orthographic & isometric camera projection
💻 New platform: WinARM64EC
🧩 Project templates to get you started (thanks, peardox!)

Plus loads of bug fixes for glTF, FBX, DAE, instancing, animation and Android (now with EGL 3).

⚠️ Heads-up for custom shaders: “_ModelViewProjectionMatrix” has been removed. Please use “_ProjectionMatrix * _ViewMatrix * a_ModelMatrix” instead.

You’ll find the full changelist and the download at gorilla3d.de.

Happy building – we can’t wait to see what you create!


Changelist

✨ New Features
Platforms
  • WinARM64EC platform support added
  • New Linux compiler verification
Texturing
  • Texture compression: global setting by “GorillaTextureCompression := tcFast;” with 3 modes tcNone|tcFast|tcQuality
    Reducing memory usage in the GPU RAM up to 6:1.
    You need to call that before “Application.Initialize;” and need to include “Gorilla.Context.Types” in uses.
  • Fixed anisotropic texturing filtering, by using the global setting “GorillaDefaultMaxAnisotropy := 16;” and “TGorillaTextureBitmap(LTex).MaxAnisotropy := GORILLA_ANISOTROPY_DEFAULT;” specific texture setting.
Camera
  • New orthographic and isometric projection settings
Animation
  • Put the play head at ATime WITHOUT computing a pose by the SeekTo method
  • TGorillaRenderClock.Tick() introduced to control animation update independently
Audio
  • TTS (Text To Speech) Engine, using Piper, added for Windows, Android, Linux and OSX platforms
  • STT (Speech To Text) Engine, using Whisper, added
  • FMOD and OpenAL with recording sound support
Network
  • Arena multiplayer framework added using Tethering and gaming server connection support
GPU & Backend
  • New function in Gorilla.Context.Backend to force setting high performance GPU (NVIDIA / AMD)
  • New function in Gorilla.Context.Backend to check for hybrid-copy-back state, when display GPU and rendering GPU differs
    This leads to much less performance and can now be detected and shown to users by message or exception.
Templates
  • Thanks to peardox, we have started to provide project templates as starting point

🐞 Bug Fixes & Stability
Optimization
  • ObjectAtPoint/Picking performance issues fixed – FPS dropped massively even on HitTest=false
  • RecalcAbsolute() fixed of TControl3D in Gorilla objects – deep loop iterations dropped framerate massively
  • TGorillaRedundancyCheck type introduced to detect reapplying the same material
Mesh & Instancing
  • BeginInstanceEditing / EndInstanceEditing and BeginUpdate / EndUpdate methods for multiple edits on TGorillaMeshInstance failed or leading to unexpected results
  • RingBuffer introduced for faster copy-process and less allocation (+4.3% at 2690 draws)
  • Model/mesh duplication failed on different positions, due to optimization in RecalcAbsolute routine
Formats
  • glTF/GLB: Import of Quaternius models failed due to unsupported MIME type in buffer data loading
  • DAE: WEAKPACKAGEUNIT flag added to reduce the number of exported types – crashing the 12.3 compiler
  • FBX: shutdown exceptions on animated fbx models – dead references throwing access violations
Animation
  • InPlace extended by a SetInPlace method to re-bake cached animation
  • Animation frame detection more closely to the current frame
  • Skipping armature computation if called multiple times per frame
Materials & Shaders
  • “_ModelViewProjectionMatrix” was removed from the ShaderData in DefaultMaterials, because it’s not correct when using instances
    use instead: “_ProjectionMatrix * _ViewMatrix * a_ModelMatrix” in your shaders
  • per-draw shader program handling (+19% at 2690 draws)
    • “ActivateDefault” removed after each shader execution
    • “FindProgram” call optimized
  • CSM rendering optimized to reduced the number of rendered objects
  • WBOIT transparency sorting adopted by screensize
  • InitializeTexture / FinalizeTexture crashed in a few demos due to unlucky setup
Q3 Physics
  • Ratio treatment in Q3-Body fixed – led to incorrect behaviour
Android
  • EGL 3 context on android introduced
Eric Developer Avatar