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


