Vixen
5cf01f31
csharp
public enum TextureFormat

What one image in a TexturePlan stores.

Read the guide page for this →

Remarks

Five, and 32-bit float is deliberately not one of them — doc 48 § M1. A texture graph produces material maps, and a material map that needs more than half-float precision is a map whose author has made a mistake somewhere upstream. The saving is not small: an intermediate at 4K is 128 MiB as Rgba16Float and 256 MiB as four 32-bit floats, and a plan holds several of them at once.

⚠ Those two figures read "16 MB and 32 MB" until #690, which is 8× under — 4096² at eight bytes a texel is 128 MiB. The correction strengthens the exclusion. And it is a policy about material maps rather than a capability limit: Raven admits r32f, rg32f and rgba32f, and Core/Vixen.Rendering/HiZPyramid.cs already dispatches into an R32Float storage image in production, so "no 32-bit float format" was never the reason.

⚠ R8 and Rg8 can be read and cannot be written, which is a fact about the target rather than about this enum — see IsStorable.

Fields and properties (5)

  • R8

    One eight-bit channel: a mask, a height, a roughness.

  • Rg8

    Two eight-bit channels: a tangent-space normal with its third lane reconstructed.

  • Rgba8

    Four eight-bit channels, linear. The ordinary colour intermediate.

  • R16Float

    One half-float channel, for a height field a blur has to stay smooth in.

  • Rgba16Float

    Four half-float channels. The widest thing a plan may ask for.

Used by (77, showing 40)

  • BakedMaterialImageTestsVixen.Graphics.Golden.Tests
  • AutoLevelsNodeVixen.TextureGraph
  • BitmapNodeVixen.TextureGraph
  • BlurNodeVixen.TextureGraph
  • DistanceNodeVixen.TextureGraph
  • FloodFillNodeVixen.TextureGraph
  • MeshMapInputNodeVixen.TextureGraph
  • NormalToHeightOperationVixen.TextureGraph
  • TextureAdjustTestsVixen.TextureGraph.Tests
  • TextureAnalysisDeviceTestsVixen.TextureGraph.Tests
  • TextureAnalysisKernelTestsVixen.TextureGraph.Tests
  • TextureAspectDeviceTestsVixen.TextureGraph.Tests
  • TextureBakeVixen.TextureGraph
  • TextureBlendDeviceTestsVixen.TextureGraph.Tests
  • TextureBudgetDeviceTestsVixen.TextureGraph.Tests
  • TextureCeilingTestsVixen.TextureGraph.Tests
  • TextureCellMetricTestsVixen.TextureGraph.Tests
  • TextureColourDeviceTestsVixen.TextureGraph.Tests
  • TextureColourKernelTestsVixen.TextureGraph.Tests
  • TextureCpuImageVixen.TextureGraph
  • TextureCpuOpDeviceTestsVixen.TextureGraph.Tests
  • TextureEmitterVixen.TextureGraph
  • TextureEvaluationCostTestsVixen.TextureGraph.Tests
  • TextureExternalUsageTestsVixen.TextureGraph.Tests
  • TextureFilterDeviceTestsVixen.TextureGraph.Tests
  • TextureFilterKernelTestsVixen.TextureGraph.Tests
  • TextureFormatsVixen.TextureGraph
  • TextureFrameLoopTestsVixen.TextureGraph.Tests
  • TextureGraphCompilerVixen.TextureGraph
  • TextureGraphCompilerTestsVixen.TextureGraph.Tests
  • TextureGraphDeviceTestsVixen.TextureGraph.Tests
  • TextureGraphPreviewVixen.Editor.Texturing
  • TextureHarnessPatternTestsVixen.TextureGraph.Tests
  • TextureImageVixen.TextureGraph
  • TextureKernelSabotageTestsVixen.TextureGraph.Tests
  • TextureKernelTestsVixen.TextureGraph.Tests
  • TextureKernelsVixen.TextureGraph
  • TextureMeshMapNodeTestsVixen.TextureGraph.Tests
  • TextureMetalReflectanceTestsVixen.TextureGraph.Tests
  • TextureMixDeviceTestsVixen.TextureGraph.Tests