2    Úvod do VRML

Na začátku bych chtěl shrnout základní vlastnosti jazyka VRML, který se používá
k popisu virtuálního světa.

V této kapitole uvedu nejdůležitější prvky jazyka VRML, které jsem použil pro tvorbu prostorových modelů map, dále jejich výhody, nevýhody a vlastnosti důležité pro tvorbu DMT.

2.1   Historie

Historie jazyka VRML 97 začíná v roce 1995 ve firmě Silicon Graphics definicí VRML 1.0 jako rozšíření aplikační knihovny OpenInventor (pro použití grafické knihovny OpenGL) o využívání prostorových dat ze sítě WWW. Současně vzniká skupina vývojářů VAG (VRML Architecture Group), která se obrací na všechny významné tvůrce systémů virtuální reality, ale i veřejnost s výzvou k vytvoření specifikace budoucího jazyka VRML 2.0. V roce 1996 je z 8 různých návrhů vybrána specifikace firem Silicon Graphics a Sony, ta se stává základem specifikace VRML 2.0. Tato specifikace byla během jednoho roku měněna a doplňována v otevřené diskusi probíhající na internetu. Koncem roku 1997 je specifikace jazyka VRML oficiálně přijata za standard ISO a nyní se používá pod označením VRML 97. Dále v textu budu pod označením VRML chápat definici VRML 97.

2.2   Prohlížení virtuálních světů

K prohlédnutí virtuálního světa potřebujeme prohlížeč VRML, který provádí převod textového popisu virtuálního světa do grafické podoby. Nejčastěji se tento prohlížeč instaluje jako doplněk internetového prohlížeče (např. programu Internet Explorer nebo Netscape Communicator). Nejznámější prohlížeče pro VRML jsou CosmoPlayer od firmy SiliconGraphics, WorldView od firmy Intervista Software a Corona od firmy ParallelGraphics[1]. Pomocí prohlížeče se dá virtuální svět dokonce vnímat prostorově, např. při použití speciálních brýlí.

Prohlížeč VRML nám umožňuje pohyb ve virtuálním světě a případnou interakci s virtuálními předměty.

2.3   Zobrazení virtuálního světa na internetu

Při zobrazení VRML modelu máme dvě možnosti. Lze ho umístit na internetové stránce jako odkaz přímo na VRML model, který se pak zobrazí v celém okně prohlížeče. Další možností je zobrazit ho jako součást html stánky pomocí příkazu EMBED.

Příklad použití:

<EMBED SRC="file.wrl"
WIDTH="300"
HEIGHT="300"
PLUGINSPAGE="http://www.parallelgraphics.com/cortona"
VRML_DASHBOARD="FALSE"
VRML_BACKGROUND_COLOR="#000077"
CONTEXTMENU="FALSE"
MASK="0 0, 150 10, 300 0, 290 150, 300 300, 150 290, 0 300, 10 150">

Kde

SRC specifikuje jméno VRML modelu, který má být zobrazen.

PLUGINSPAGE navádí uživatele na stránky, které ho informují, jak nainstalovat plug-in, který umí zobrazit VRML soubor, jestliže ho uživatel ještě nemá nainstalován.

VRML_DASHBOARD[2] "TRUE" – zapne zobrazení ovládacího panelu; "FALSE" – zobrazení vypne.

VRML_BACKGROUND_COLOR[3] "#rrggbb" specifikuje barvu pozadí modelu (hexadecimálně), pokud ovšem není pozadí již definováno ve VRML souboru uzlem Background.

CONTEXTMENU[4] "TRUE" – umožňuje použít kontextové menu v okně modelu; "FALSE" – kontextové menu zablokuje.

MASK[4] umožňuje specifikovat tvar oblasti, ve které bude model zobrazen.

2.4   Popis VRML

Soubor s popisem v jazyce VRML se skládá z uzlů a tvoří hierarchickou (stromovou) strukturu. V roli parametrů uzlů se mohou objevovat jiné uzly. Podle vzájemné polohy jednotlivých uzlů mluvíme o vztazích, jako je rodič, potomek nebo sourozenec. Podobně jako rodič v rodině předává svým potomkům své vlastnosti, předává rodičovský uzel vlastnosti svým potomkům (např. poloha nebo rotace).

Soubor s popisem virtuálního světa můžeme rozdělit do několika základních částí. Na začátku je vždy hlavička. Její tvar je neměnný a informuje prohlížeč, o jaký typ souboru se jedná. Tento řádek je povinný. Za hlavičkou většinou následují úvodní informace o virtuálním světě. Jsou to informace o souboru a jeho tvůrci (WorldInfo), seznam zajímavých míst uvnitř virtuálního světa (Viewpoint) a způsob procházení světem (NavigationInfo). Třetí, nejrozsáhlejší část tvoří vlastní popis virtuálního světa. Pořadí těchto částí není závazné, ale je dobrým zvykem ho kvůli čitelnosti dodržovat.

Soubory, které popisují VRML-světy, mají příponu wrl a lze je pro úsporu místa zkomprimovat programem gzip, přičemž si zachovají příponu wrl, prohlížeč sám rozpozná takový soubor a automaticky ho dekomprimuje.

Abychom mohli s VRML pracovat, je zde zaveden systém prostorových souřadnic. Směr vzhůru je totožný s kladnou osou Y a země je totožná s rovinou XZ. Kladná poloosa X běžně míří doprava a osa Z míří směrem k nám.

řádek začínající znakem # je chápán jako komentář (s výjimkou prvního řádku).

Parametry podle vztahu k událostem se dělí na 4 druhy. field je statická veličina a lze ji změnit pouze zapsáním nové hodnoty do souboru VRML. eventIn je parametr schopný přijmout událost daného datového typu. eventOut je parametr schopný vyslat událost v okamžiku, kdy dojde ke změně jeho hodnoty. Parametr exposedField má iniciální hodnotu a je schopen přijmout události měnící jeho hodnotu a také po změně této hodnoty události vysílat. Protože tvorba dynamických světů jde nad rámec této diplomové práce, není v dalším popisu uzlů uveden význam dynamických parametrů.

Názvy uzlů začínají velkým písmenem a názvy parametrů malým. Je důležité si na to dávat pozor při psaní, nebo jazyk VRML je citlivý na velká a malá písmena.

Délky se ve VRML zadávají v metrech, čas v sekundách a úhly v radiánech. Barva se popisuje trojicí hodnot RGB v rozsahu 0-1.

Na pořadí parametrů uvnitř uzlu nezáleží. Každý parametr má definovanou iniciální hodnotu. Stačí tedy definovat jen ty parametry, jejichž hodnoty jsou odlišné do iniciálních. Zápis všech hodnot snižuje čitelnost programu.

Textové řetězce se zapisují do uvozovek. U každého parametru je stanoveno, zda do něj lze zapsat jednu nebo více hodnot. Vkládá-li se více hodnot, jsou uzavřeny do hranatých závorek a odděleny bílými znaky (konec řádku, tabulátor, mezera nebo čárka). Každý parametr má jednoznačně dáno, jaký typ dat do něj lze ukládat. Je definováno několik datových typů, obvykle ve dvou variantách, buï s předponou SF (Single Field), která dovoluje ukládat pouze samostatnou hodnotu, nebo s předponou MF (Multiple Field), do které se zadává seznam hodnot, jehož délka není obecně omezena.

2.4.1  Avatar (Návštěvník)

Pojem avatar[5] označuje uživatelova dvojníka, který prochází virtuálním světem. To, co avatar vidí, je zobrazeno v okně prohlížeče. Avatar má své rozměry, které mu např. brání procházet malými průchody.

V interaktivně navržených světech lze detekovat, v jakém místě virtuálního světa avatar stojí, co všechno vidí, zda naráží na překážku nebo zda vstupuje do nějaké hlídané zóny. O veškerou tuto detekci se starají senzory, speciální uzly definované ve VRML.

Ovládání avatara je zajištěno prostřednictvím tzv. velitelského stanoviště, které je na obrazovce reprezentováno ovládacími prvky prohlížecí aplikace. Jak vlastnosti avatara, tak i některé prvky velitelského stanoviště lze zadat pomocí uzlu NavigationInfo.

2.4.2  Hlavní uzly

Uzly, které jsem použil při tvorbě prostorového modelu, vyjmenuji v následujících podkapitolách.

2.4.2.1 Viewpoint (Stanoviště)

Umístění a pohledové vlastnosti stanoviště.

Viewpoint {

typ parametru

typ dat

název

iniciální hodnota

význam

exposedField

SFFloat

fieldOfView

0.785398

Zorný úhel

exposedField

SFBool

jump

TRUE

Povolení plynulého přechodu na stanoviště

exposedField

SFRotation

orientation

0 0 1 0

Natočení avatara

exposedField

SFVec3f

position

0 0 10

Poloha avatara

field

SFString

description

""

Jméno stanoviště uváděné prohlížečem

eventIn

SFBool

set_bind

eventOut

SFTime

bindTime

eventOut

SFBool

isBound

}

Tento uzel definuje stanoviště pozorovatele. Je důležité, aby bylo správně umístěno a zajištěno zacílení pohledu pozorovatele na pozorovaný objekt. V opačném případě se může stát, že pozorovatel vůbec nenajde zobrazený model, zvláště tehdy, je-li tento model jednostranně zobrazen a ze stanoviště je vidět pouze rubová strana modelu.

Pomocí tohoto uzlu je také možné zajistit prohlídku virtuálního světa definováním více stanoviš, kdy při přepínání dochází k plynulému přechodu ze stanoviště na stanoviště.

První stanoviště definované v souboru nastavuje iniciální pohled při vstupu do virtuálního světa.

2.4.2.2 NavigationInfo (ovládání Avatara)

Geometrické, světelné a pohybové charakteristiky avatara.

NavigationInfo {

typ parametru

typ dat

název

iniciální hodnota

význam

exposedField

MFFloat

avatarSize

[0.25, 1.6, 0.75]

Trojice čísel určující rozměry avatara

exposedField

SFBool

headlight

TRUE

Zapnutí svítilny na čele avatara

exposedField

SFFloat

speed

1.0

Rychlost pohybu avatara v m/s

exposedField

MFString

type

["WALK", "ANY"]

Seznam povolených způsobů pohybu avatara

exposedField

SFFloat

visibilityLimit

0.0

Dohled avatara

eventIn

SFBool

set_bind

eventOut

SFBool

isBound

}

Při zobrazování krajiny je vhodné vypnout avatarovu svítilnu, aby se zvýšila reálnost prostředí. Dále je vhodné zvýšit rychlost pohybu avatara, implicitní hodnota je pro pohyb v krajině dosti nízká. Jako způsob pohybu je nejlépe použít typ WALK, při kterém se avatar pohybuje po zemi a působí na něj gravitace, dále je možné použít typ FLY, kdy se ve světě pohybuje jako pták, anebo použít typ ANY; pak je možné použít jakýkoliv způsob pohybu. Dohled avatara je dobré ponechat nastavený na nulu, což znamená nekonečno.

2.4.2.3 Background (pozadí, panorama)

Definice pozadí, reprezentovaná vnitřkem krychle s panoramatickým obrazem či vnitřkem koule s plynulými barevnými přechody, obklopující virtuální svět.

Background {

typ parametru

typ dat

název

iniciální hodnota

význam

exposedField

MFFloat

skyAngle

[]

Rostoucí posloupnost úhlů, pro které jsou dány barvy oblohy

exposedField

MFColor

skyColor

0 0 0

Seznam barev pro postupné přechody na sférické obloze

exposedField

MFColor

groundColor

[]

Seznam barev pro postupné přechody na sférické zemi

exposedField

MFFloat

groundAngle

[]

Rostoucí posloupnost úhlů, pro které jsou dány barvy země

exposedField

MFString

backUrl

[]

Obrázek pro zadní stěnu obklopující krychle

exposedField

MFString

bottomUrl

[]

Obrázek pro spodní stěnu obklopující krychle

exposedField

MFString

frontUrl

[]

Obrázek pro přední stěnu obklopující krychle

exposedField

MFString

leftUrl

[]

Obrázek pro levou stěnu obklopující krychle

exposedField

MFString

rightUrl

[]

Obrázek pro pravou stěnu obklopující krychle

exposedField

MFString

topUrl

[]

Obrázek pro horní stěnu obklopující krychle

eventIn

SFBool

set_bind

eventOut

SFBool

isBound

}

Při prezentaci modelu dodá pozadí virtuálnímu světu větší iluzi prostoru, nehledě na to, že bez definování tohoto uzlu se mapa zobrazí s černým pozadím. Jsou dvě možnosti, jak definovat pozadí. Jednou z možností je definovat pozadí jako přechod barev měnících se s výškou nad horizontem, další možností jsou panoramatické obrázky obklopující virtuální svět ze všech stran.

2.4.2.4 PointLight (Bodový zdroj světla)

Charakteristika světelného zdroje, který vysílá paprsky z jednoho bodu. Jejich intenzita klesá v rámci zadaného rozsahu.

PointLight {

typ parametru

typ dat

název

iniciální hodnota

význam

exposedField

SFFloat

ambientIntensity

0

Příspěvek světelného zdroje k nepřímému osvětlení světelného zdroje

exposedField

SFVec3f

attenuation

1 0 0

Trojice koeficientů pro výpočet útlumu světla

exposedField

SFColor

color

1 1 1

Barva paprsků

exposedField

SFFloat

intensity

1

Intenzita paprsků

exposedField

SFVec3f

location

0 0 0

Umístění světelného zdroje

exposedField

SFBool

on

TRUE

Vypnutí nebo zapnutí světelného zdroje

exposedField

SFFloat

radius

100

Dosah osvětlení

}

Definice VRML obsahuje několik druhů světel. PointLight je nejvhodnější pro osvětlení světa, protože se jím dá definovat světelný zdroj podobný slunci.

2.4.2.5 Fog (Mlha)

Definice mlhy, která je míchána s barvou objektů podle rostoucí vzdálenosti od avatara.

Fog {

typ parametru

typ dat

název

iniciální hodnota

význam

exposedField

SFColor

color

1 1 1

Barva mlhy

exposedField

SFString

fogType

"LINEAR"

Způsob houstnutí mlhy

exposedField

SFFloat

visibilityRange

0

Vzdálenost maximálního dohledu

eventIn

SFBool

set_bind

eventOut

SFBool

isBound

}

Pro zlepšení iluze prostoru můžeme použít mlhu, která je dnes všudypřítomná.

2.4.2.6 ElevationGrid (Výšková mapa)

Definice sítě ploch pokrývajících terén.

ElevationGrid {

typ parametru

typ dat

název

iniciální hodnota

význam

exposedField

SFNode

color

NULL

Seznam barev v uzlu Color

exposedField

SFNode

normal

NULL

Seznam normál v uzlu Normal

exposedField

SFNode

texCoord

NULL

Seznam souřadnic textury v uzlu TextureCoordinate

field

MFFloat

height

[]

Pole výšek všech vrcholů sítě

field

SFBool

ccw

TRUE

Přivrácená strana mapy je vidět při pohledu shora

field

SFBool

colorPerVertex

TRUE

Barvy v parametru color se vztahují na vrcholy (jinak na plochy sítě)

field

SFFloat

creaseAngle

0

Mezní úhel, do kterého jsou dvě sousední plochy považovány za oblé

field

SFBool

normalPerVertex

TRUE

Normály v parametru normal se vztahují na vrcholy (jinak na plochy sítě)

field

SFBool

solid

TRUE

Mapa je jednostranná

field

SFInt32

xDimension

0

Počet vrcholů sítě v ose X

field

SFFloat

xSpacing

1.0

Vzdálenost mezi vrcholy sítě v ose X

field

SFInt32

zDimension

0

Počet vrcholů sítě v ose Z

field

SFFloat

zSpacing

1.0

Vzdálenost mezi vrcholy sítě v ose Z

eventIn

MFFloat

set_height

}

Tento uzel je jedením ze dvou, který se používá pro definici modelu terénu. Skládá se ze sítě, nad kterou se definují výšky. Tento model se někdy také označuje jako rastrový model terénu. Plocha je standardně umístěna do roviny XZ, tedy tam, kde je očekávána pevná zem. Do parametru height se zapisuje pole výšek nad jednotlivými vrcholy sítě. Pomocí parametru creaseAngle se dá nastavit zaoblení terénu. Tak definujeme mezní úhel, při kterém jsou dvě plochy spojeny hladce.

2.4.2.7 IndexedFaceSet (Množina ploch)

Definice geometrie a vzhledu skupiny ploch.

IndexedFaceSet {

typ parametru

typ dat

název

iniciální hodnota

význam

exposedField

SFNode

color

NULL

Seznam barev v uzlu Color

exposedField

SFNode

coord

NULL

Seznam vrcholů v uzlu Coordinate

exposedField

SFNode

normal

NULL

Seznam normál v uzlu Normal

exposedField

SFNode

texCoord

NULL

Seznam souřadnic textury v uzlu TextrueCoordinate

field

SFBool

ccw

TRUE

Plochy jsou zadávány proti směru hodinových ručiček

field

MFInt32

colorIndex

[]

Posloupnost indexu barev pro jednotlivé vrcholy nebo plochy

field

SFBool

colorPerVertex

TRUE

Barvy v parametru colorIndex se vztahují na vrcholy (jinak na plochy)

field

SFBool

convex

TRUE

Všechny plochy jsou konvexní

field

MFInt32

coordIndex

[]

Posloupnost indexů vrcholů ploch zakončená -1

field

SFFloat

creaseAngle

0

Mezní úhel, do kterého jsou dvě sousední plochy považovány za oblé

field

MFInt32

normalIndex

[]

Posloupnost indexů normál

field

SFBool

normalPerVertex

TRUE

Normály v parametru normalIndex se vztahují na vrcholy (jinak na plochy)

field

SFBool

solid

TRUE

Plochy se zobrazují jednostranně

field

MFInt32

texCoordIndex

[]

Posloupnosti indexů souřadnic textury pro jednotlivé vrcholy

eventIn

MFInt32

set_colorIndex

eventIn

MFInt32

set_coordIndex

eventIn

MFInt32

set_normalIndex

eventIn

MFInt32

set_texCoordIndex

}

Další uzel pro definici obecné plochy pomocí množiny ploch. Pomocí malých plošek se definuje libovolné těleso nebo plocha. Každá plocha se definuje pomocí pořadových čísel vrcholů. Tím se docílí úspory paměti.

2.4.2.8 Coordinate (Souřadnice prostorových bodů)

Definice souřadnic bodů v prostoru.

Coordinate {

typ parametru

typ dat

název

iniciální hodnota

význam

exposedField

MFVec3f

point

[]

Seznam bodů

}

2.4.2.9 TextureCoordinate (Souřadnice textury)

Definice bodů v rovině, které slouží jako vztažné body pro nanesení textury v ploškových geometrických útvarech.

TextureCoordinate {

typ parametru

typ dat

název

iniciální hodnota

význam

exposedField

MFVec2f

point

[]

Seznam bodů v rovině

}

Tento uzel jsem použil pro správné nanesení textury mapy v modelu vytvořeném uzlem IndexedFaceSet. Implicitní mapování textury na model vytvořený uzlem ElevationGrid je správné, a proto se při něm nemusí tento uzel používat.

2.4.2.10 TextureTransform (Transformace rovinné textury)

Nastavení posunu, otočení a měřítka rovinné textury.

TextureTransform {

typ parametru

typ dat

název

iniciální hodnota

význam

exposedField

SFVec2f

center

0 0

Poloha vztažného bodu

exposedField

SFFloat

rotation

0

Úhel otočení vzhledem ke vztažnému bodu

exposedField

SFVec2f

scale

1 1

Změna měřítka

exposedField

SFVec2f

translation

0 0

Posunutí

}

Při nanášení textury na model vytvořený uzlem ElevationGrid je implicitně nanesená textura zrcadlově převrácená (vztažný bod výškové mapy je v levém horním rohu a vztažný bod textury v levém dolním rohu), proto je třeba texturu převrátit pomocí parametru scale (scale 1 -1).

2.4.2.11 ImageTexture (Textura určená obrázkem)

Určení obrázku a jeho případného opakovaného nanášení jako textury na povrch.

ImageTexture {

typ parametru

typ dat

název

iniciální hodnota

význam

exposedField

MFString

url

[]

Seznam adres s umístěním obrázku

field

SFBool

repeatS

TRUE

Povolení opakování textury ve vodorovném směru

field

SFBool

repeatT

TRUE

Povolení opakování textury ve svislém směru

}

V tomto uzlu se definuje textura mapy, která se potom nanáší na prostorový model. Obrázek může být ve formátu JPEG a PNG. Některé prohlížeče podporují také formát GIF a vektorový formát CGM.

2.4.2.12 Transform (umístění skupiny)

Nastavení společné polohy, měřítka a otočení potomků.

Transform {

typ parametru

typ dat

název

iniciální hodnota

význam

exposedField

SFVec3f

center

0 0 0

Vztažný bod, vůči kterému se provádí otočení

exposedField

MFNode

children

[]

Seznam potomků

exposedField

SFRotation

rotation

0 0 1 0

Osa a úhel otočení

exposedField

SFVec3f

scale

1 1 1

Změna měřítka ve směru os

exposedField

SFRotation

scaleOrientation

0 0 1 0

Osa a úhel otočení provedeného před změnou měřítka

exposedField

SFVec3f

translation

0 0 0

Posunutí

field

SFVec3f

bboxCenter

0 0 0

Souřadnice středu pomocné obálky ve tvaru kvádru

field

SFVec3f

bboxSize

-1 -1 -1

Velikost pomocné obálky

eventIn

MFNode

addChildren

eventIn

MFNode

removeChildren

}

Při tvorbě modelu jsem používal tento uzel hlavně pro spojování jednotlivých modelů do jednoho, nebo posunutí jednotlivých částí modelu vedle sebe.

2.4.2.13 Shape (Zobrazitelný objekt)

Provázání definice geometrického tvaru a vlastností povrchu jednoho objektu.

Shape {

typ parametru

typ dat

název

iniciální hodnota

význam

exposedField

SFNode

appearance

NULL

Vzhled povrchu objektu

exposedField

SFNode

geometry

NULL

Geometrie objektu

}

2.4.2.14 Appearance (Vzhled povrchu)

Přiřazení barevných vlastností a textury, případně jejich kombinace, geometrickému objektu, který je sourozencem tohoto uzlu.

Appearance {

typ parametru

typ dat

název

iniciální hodnota

význam

exposedField

SFNode

material

NULL

Barevné vlastnosti povrchu

exposedField

SFNode

texture

NULL

Textura na povrchu

exposedField

SFNode

textureTransform

NULL

Umístění a natočení textury

}

Důležitý uzel pro nanesení textury povrchu a definování vlastností odrazu světla od povrchu, které se zadávají v parametru material uzlem Material.

2.4.2.15 Group (Skupina)

Sdružení více uzlů do jednoho stromu.

Group {

typ parametru

typ dat

název

iniciální hodnota

význam

exposedField

MFNode

children

[]

Seznam potomků

field

SFVec3f

bboxCenter

0 0 0

Souřadnice středu pomocné obálky ve tvaru kvádru

field

SFVec3f

bboxSize

-1 -1 -1

Definice délky stran pomocné obálky ve tvaru kvádru.

eventIn

MFNode

addChildren

eventIn

MFNode

removeChildren

}

2.4.2.16 LOD (Stupeň detailu)

Variabilní reprezentace jednoho objektu v různých detailech přesnosti.

LOD {

typ parametru

typ dat

název

iniciální hodnota

význam

exposedField

MFNode

level

[]

Seznam reprezentací modelu s postupně klesající přesností

field

SFVec3f

center

0 0 0

Bod, vůči kterému se měří vzdálenost objektu od avatara

field

MFFloat

range

[]

Rostoucí posloupnost vzdáleností indikujících přepnutí reprezentace

}

Pomocí tohoto uzlu se dá dosáhnout zrychlení zobrazování modelu na počítači. Využívá se toho, že vzdálenější objekty nepotřebují být zobrazeny tak detailně jako objekty v popředí. Jestliže definujeme tentýž objekt s různým stupněm detailu, můžeme potom definovat, v jaké vzdálenosti od avatara má být zobrazen jaký model.

2.4.2.17 Inline (Vložení)

Vložení dalšího světa nebo objektu z vnějšího souboru do aktuálního světa.

Inline {

typ parametru

typ dat

název

iniciální hodnota

význam

exposedField

MFString

url

[]

Seznam adres, kde se nachází soubor s virtuálním světem

Field

SFVec3f

bboxCenter

0 0 0

Velikost pomocné obálky

Field

SFVec3f

bboxSize

-1 -1 -1

Střed pomocné obálky

}

Tento uzel se používá k vložení virtuálního světa. Vložený soubor musí být platným virtuálním světem. Umožňuje rozdělit větší svět na několik menších souborů, což zrychluje zobrazení virtuálního světa. Svět v aktuálním souboru může být již zobrazen, ale zároveň se načítají z vnějších souborů jeho další části.

2.4.2.18 Material (Barevné vlastnosti)

Nastavení barevných charakteristik povrchu podle schopnosti odrazu barevných složek nepřímého a přímého světla. Nastavení průhlednosti nebo vlastní zářivosti objektu.

Material {

typ parametru

typ dat

název

iniciální hodnota

význam

exposedField

SFFloat

ambientIntensity

0.2

Světlost povrchu získaná odrazem od okolního světa bez ohledu na úhel dopadu

exposedField

SFColor

diffuseColor

0.8 0.8 0.8

Barva povrchu ovlivněná úhlem dopadu světla na povrch

exposedField

SFColor

emissiveColor

0 0 0

Vyzařovaná barva, luminiscence

exposedField

SFFloat

shininess

0.2

Rozmazané nebo ostré odlesky od přímých zdrojů světla

exposedField

SFColor

specularColor

0 0 0

Barva světla odraženého od přímých zdrojů světla

exposedField

SFFloat

transparency

0

Průhlednost

}

Nemá smysl nastavovat všechny parametry najednou. Barva povrchu je ovlivňována všemi světelnými zdroji a mlhou.