Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
textures [2020/05/25 12:32] – [Example] admintextures [Unknown date] (current) – removed - external edit (Unknown date) 127.0.0.1
Line 1: Line 1:
-====== Textures ====== 
  
-Gorilla3D extends FMX texture support of TTextureBitmap. With default FMX behaviour you're only allowed to create a RGBA texture. 
- 
-===== Texture-Kinds ===== 
- 
-With v0.8.2+ more texture types than 2D textures are supported. 
- 
-^Format^Description^ 
-|TGorillaTextureKind.Texture2D|Default texture kind creating a two dimensional image.| 
-|TGorillaTextureKind.Texture3D|Creating a three dimensional texture.| 
-|TGorillaTextureKind.CubeMap|Creating a texture with 6 sides of 2D Images.| 
-===== Supported Formats ===== 
- 
-A texture format is described by a components internal format and a general format. While the components define the exact datatypes of byte data, the general format is more a simple setup information. 
- 
-==== Components / InternalFormat ==== 
-^Format^Description^ 
-|TPixelFormatEx.RGBA|| 
-|TPixelFormatEx.RGBA16F|| 
-|TPixelFormatEx.RGBA32F|| 
-|TPixelFormatEx.RGB|| 
-|TPixelFormatEx.RGB16F|| 
-|TPixelFormatEx.RGB32F|| 
-|TPixelFormatEx.RG|| 
-|TPixelFormatEx.RG16F|| 
-|TPixelFormatEx.RG32F|| 
-|TPixelFormatEx.R|| 
-|TPixelFormatEx.R16F|| 
-|TPixelFormatEx.R32F|| 
-|TPixelFormatEx.Depth|| 
-|TPixelFormatEx.Depth16|| 
-|TPixelFormatEx.Depth24|| 
-|TPixelFormatEx.Depth32|| 
-|...|| 
- 
-==== Format ==== 
-^^^ 
-|TPixelFormatEx.RGBA|| 
-|TPixelFormatEx.RGB|| 
-|TPixelFormatEx.RG|| 
-|TPixelFormatEx.R|| 
-|TPixelFormatEx.Depth|| 
-|...|| 
-===== Min-/Mag Filter ===== 
- 
-^Filter^Description^ 
-|TTextureFilter.Linear|| 
-|TTextureFilter.Nearest|| 
-===== Wrapping ===== 
- 
-^Kind^^ 
-|TGorillaTextureWrap.ClampToBorder|| 
-|TGorillaTextureWrap.ClampToEdge|| 
-|TGorillaTextureWrap.Clamp|| 
-|TGorillaTextureWrap.Repeated|| 
-|TGorillaTextureWrap.MirrorRepeated|| 
- 
-===== Setting up ===== 
- 
-To set up a Gorilla3D texture correctly, you need to encapsulate property configuration inside of BeginSetup and EndSetup method. 
-Only then all settings will correctly be submitted to OpenGL. 
-===== Example ===== 
- 
-At first a simple example where a TGorillaTextureBitmap is created with a size of 1024 x 1024 pixels and will all necessary settings. 
- 
-<file pascal> 
-LTexture := TGorillaTextureBitmap.Create(1024, 1024); 
-LTexture.BeginSetup(); 
-try 
-    with LTexture do 
-    begin 
-        Components := TPixelFormatEx.RGB32F; 
-        Format := TPixelFormatEx.RGB; 
-        MinFilter := TTextureFilter.Linear; 
-        MagFilter := TTextureFilter.Linear; 
-        WrapS := TGorillaTextureWrap.ClampToBorder; 
-        WrapT := TGorillaTextureWrap.ClampToBorder; 
-    end; 
-finally 
-    LTexture.EndSetup(); 
-end; 
-</file> 
- 
-Secondly a common example to ignore linear interpolation of a material texture. This becomes very useful, when displaying textures in pixelart, like minecraft. 
- 
-We have to disable interpolation and mipmapping. 
- 
-<file pascal> 
-var LTexture : TGorillaTextureBitmap; 
-begin 
-  // request the texture and convert to Gorilla3D texture bitmap. 
-  LTexture := GorillaLambertMaterialSource1.Texture as TGorillaTextureBitmap; 
-   
-  // start manipulating properties and update them in GPU. 
-  LTexture.BeginSetup(); 
-  try 
-    LTexture.MinFilter := TTextureFilter.Nearest; 
-    LTexture.MagFilter := TTextureFilter.Nearest; 
-    LTexture.Style := LTexture.Style - [TTextureStyle.MipMaps]; 
-  finally 
-      LTexture.EndSetup(); 
-  end; 
-   
-  // re-assign texture to update for shader 
-  GorillaLambertMaterialSource1.Texture := LTexture; 
-end; 
-</file>