====== Introduction ====== Gorilla3D is an addon framework for Delphi Firemonkey 3D and it's not a game engine, even though we provide more and more design time editors to make things easier. A 3D framework and a 3D engine are both tools used for creating 3D applications, but they have different purposes and functions. A 3D framework is a collection of software libraries, APIs, and tools that provide a set of pre-built functionalities for building 3D applications. It typically includes tools for rendering 3D graphics, managing scenes, handling user input, and implementing physics simulations. The purpose of a 3D framework is to provide developers with a foundation on which they can build custom 3D applications with ease, without having to start from scratch. On the other hand, a 3D engine is a software tool designed specifically for creating and running 3D applications. It is a more comprehensive solution that typically includes all the features of a 3D framework, as well as additional tools for managing game assets, handling animations, and implementing complex gameplay mechanics. The purpose of a 3D engine is to provide a complete solution for creating interactive 3D experiences, such as video games or virtual reality applications. In summary, a 3D framework provides a foundation for building 3D applications, while a 3D engine is a more comprehensive solution that includes all the tools necessary for creating fully-featured 3D applications. ====== First Steps ====== Handling Gorilla3D is quite the same as using Firemonkey 3D. The main difference is the usage of TGorillaViewport as the main component for display. **You can no longer use a TViewport3D or TForm3D as basis for showing 3D content.** The reason for that is, that Gorilla3D extends functionality a lot and needs special treatment, which the default viewport do not provide (f.e. Render-Passes, Lighting-Information, Shadow-Computation, ...). But, let's start and have quick look at the basic features of Gorilla3D and how they are going to be used. * [[viewport|Viewport]] * [[models|Models]] * [[animations|Animations]] * [[custommesh|Create a Mesh]] * [[materials|Materials]] * [[default-material|DefaultMaterial]] * [[material-behaviour|Material Behaviour]] * [[runtime-material|RuntimeMaterial]] * [[water|Water]] * [[textures|Textures]] * [[primitives|Primitives]] * [[cameras|Cameras]] * [[lights|Lights]] * [[terrain|Terrain]] * [[skybox|SkyBox]] * [[volumerendering|Volume Rendering]] * [[particles|Particles]] * [[physics|Physics]] * [[q3-physics-joints|Joints]] * [[fmodaudio|FMOD Audio]] * [[assetsmanager|Assets Manager]] * [[modelassembling|ModelAssembler]] * [[inventory|Inventory]] * [[dialogues|Dialogues]] * [[skillsystem|Skillsystem]] * [[inputpolling|Input Polling]] * [[pathfinding|Pathfinding]] * [[renderpass|Render Pass]] * [[environmentmap|Environment Mapping]] * [[realtimeglobalillumination|Realtime Global-Illumination]] * [[bloom|Bloom / Emissive Blurring]] * [[fxaa|FXAA]] * [[postfx|PostFX]] * [[shadows|Shadows]] * [[water|Water]] * [[bokeh|Bokeh]] * [[deftypes|Internal Model Definition]] * [[transparency|Transparency]] * [[layer3d|2D FMX components]] * [[scripting|Scripting]] * [[interaction|Interaction]] * [[picking|Picking]] * [[charactercontrolling|CharacterControlling]] * [[triggerpoints|TriggerPoints]] * [[animationcontroller|Animation Controller]] * [[audiomanagercontroller|Audio Manager Controller]] * [[prefabs|Prefabs]] * [[android|Android]] * [[cpp-builder|C++ Builder]]