Hology
Hology
Hology
  • 👋Welcome to Hology Docs
  • Getting started
    • Introduction to Hology
    • The first steps
    • Editor basics
      • Flying in scenes
      • Placing objects
      • Select objects
      • Transform
      • Grouping objects
      • Duplicate
    • Starter project - Third person shooter
  • Tutorials
    • Rolling ball - Gameplay programming
    • Character movement programming
    • Character AI behavior
  • Release
    • Distribution
      • Discord Activities
      • Facebook Instant Games
      • Upload to Itch.io
      • Host with GitHub Pages
      • Publishing to Steam
      • iOS and Android
  • Assets
    • 3D Models
      • Custom collision shapes
      • Material slots
    • Materials
    • Textures
    • Prefabs
  • Gameplay
    • Actors
      • Creating actor classes
      • Actor parameters
      • Actor components
      • Actor lifecycle
      • Spawning actors
      • Moving actors
    • Services
      • Load assets
    • Player input
    • Collision detection
    • Physics
      • Physics body types
      • Applying forces
      • Ray casting
    • Trigger volumes
    • Character movement
    • Pointer events
    • Animation
      • Animation system
      • Character Animation
      • Animation State Machine
    • Sound
      • Audio parameter
    • World
    • Navigation
  • Shaders
    • Introduction to shaders
    • Creating shaders
    • Shader parameters
    • Typescript shaders
      • Types
      • Math functions
      • Attributes
      • Varying
      • Uniforms
      • Textures
      • Arrays
      • Select
      • Lighting
    • Painted materials
    • Water shader tutorial
  • Level design
    • Landscape sculpting
    • Landscape painting
    • Grass
  • User Interfaces
    • Creating user interfaces
    • Using React
    • VR
  • Visual Effects
    • Introduction to VFX
    • VFX Assets
  • Integrations
    • Arcweave
Powered by GitBook
On this page
  1. Shaders
  2. Typescript shaders

Arrays

PreviousTexturesNextSelect

Last updated 1 year ago

Arrays are especially useful when passing in data to a shader as a uniform and this is currently the only way to create arrays unless you create your own node that outputs an array. .

Using arrays

Map

An array can be mapped into another array by providing a mapping function.

const doubledNumbers: ArrayNode<FloatNode> = numbers.map((value: FloatNode) => {
    return value.multiply(float(2))
})

Sum

An array can be reduced to a single value by providing a function that applies some transformation before summing the values. The return type of the mapping function must be numeric.

const doubledSum: FloatNode = numbers.sum((value: FloatNode) => {
    return value.multiply(float(2))
})

Get element by index

array.get(0) // Using a constant
array.get(int(0)) // Using an IntNode to pick an element programatically
See the how pass in an array of uniforms