roguestar-gl-0.4.0.0: src/Models/Materials.hs
module Models.Materials
(
-- | Materials by Faction
treaty_metal,
treaty_glow,
treaty_energy_field,
alliance_metal,
concordance_metal,
concordance_dark_glass,
concordance_bright_glass,
cyborg_metal,
cyborg_glow,
-- | Material by Species
caduceator_skin,
encephalon_skin,
reptilian_skin,
reptilian_pigment,
reptilian_specular,
-- | Material by Energy Type
energyColor,
energyMaterial)
where
import RSAGL.Modeling
import Models.LibraryData
{---------------------------------------------------------
- Materials by Faction
- -------------------------------------------------------}
-- Treaty Organization Materials (cyan-teal solid colors, yellow energy colors)
treaty_metal :: MaterialM attr ()
treaty_metal = material $
do pigment $ pure camouflage_green
specular 1 $ pure $ viridian
treaty_glow :: MaterialM attr ()
treaty_glow = material $
do pigment $ pure black
emissive $ pure brass
treaty_energy_field :: MaterialM attr ()
treaty_energy_field = material $
do emissive $ pure brass
specular 1 $ pure saffron
-- Alliance Materials (yellow-gold solid colors, orange energy colors)
alliance_metal :: Modeling ()
alliance_metal = material $
do pigment $ pure $ scaleRGB 0.6 gold
specular 7 $ pure gold
-- Concordance Materials (violet solid colors, blue energy colors)
concordance_metal :: Modeling ()
concordance_metal = material $
do pigment $ pure slate_gray
specular 4 $ pure lilac
concordance_dark_glass :: Modeling ()
concordance_dark_glass = material $
do pigment $ pure black
specular 8 $ pure eggplant
concordance_bright_glass :: Modeling ()
concordance_bright_glass = material $
do pigment $ pure black
emissive $ pure puce
specular 8 $ pure eggplant
-- Pirates (green solid colors, red energy colors)
-- Utopiate (red solid colors, cyan-teal energy colors)
-- Whispers (black solid colors, white energy colors)
-- Monster (orange solid colors, violet energy colors)
-- Cyborg Materials (white solid colors, green energy colors)
cyborg_metal :: MaterialM attr ()
cyborg_metal = metallic $ pure wheat
cyborg_glow :: MaterialM attr ()
cyborg_glow =
do pigment $ pure blackbody
emissive $ pure $ scaleRGB 1.0 green
{-------------------------------------------------------
- Materials by Species
- -----------------------------------------------------}
-- Caduceator Skins
caduceator_skin :: Modeling ()
caduceator_skin = material $ pigment $ pattern (cloudy 75 0.01) [(0.0,pure red),(0.5,pure safety_orange),(1.0,pure black)]
-- Reptilian Skins
reptilian_pigment :: ColorFunction RGB
reptilian_pigment = pattern (cloudy 75 0.1) [(0.0,pure lavender),(1.0,pure saffron)]
reptilian_specular :: ColorFunction RGB
reptilian_specular = pattern (cloudy 75 0.1) [(0.0,pure firebrick),(1.0,pure chartreuse)]
reptilian_skin :: Modeling ()
reptilian_skin = material $
do pigment $ reptilian_pigment
specular 5.0 $ reptilian_specular
-- Encephalon Skins
encephalon_skin :: Modeling ()
encephalon_skin = material $ pigment $ pattern (cloudy 32 0.1) [(0.0,pure sepia),(1.0,pure amethyst)]
{--------------------------------------------------------
- Material by Energy Type
- ------------------------------------------------------}
energyColor :: EnergyColor -> RGB
energyColor Blue = cobalt
energyColor Yellow = saffron
energyColor Red = red
energyColor Green = shamrock
energyMaterial :: EnergyColor -> Modeling ()
energyMaterial c = material $
do pigment $ pure $ scaleRGB 0.33 $ energyColor c
specular 1.0 $ pure $ scaleRGB 0.33 $ energyColor c
emissive $ pure $ scaleRGB 0.33 $ energyColor c