• No results found

Kort introduktion till POV-Ray, del 7

N/A
N/A
Protected

Academic year: 2022

Share "Kort introduktion till POV-Ray, del 7"

Copied!
6
0
0

Loading.... (view fulltext now)

Full text

(1)

Kort introduktion till POV-Ray, del 7

© Kjell Y Svensson, 2004,2007-03-14

Detta avsnitt kommer att handla om slumpen, vi ska lära oss skriva och så undersöker vi några fler fördefinierade mönster i stil med det schackmönster vi sett tidigare.

Text

Med POV-Ray är det inte speciellt svårt att skriva snygga 3-dimensionella meddelanden. Ett par rader av beskrivningskod och en snygg font är allt som krävs. Text är ett fördefinierat objekt där man anger en font och en text samt hur djup fonten ska vara i z-led. Det finns en fjärde parameter som anger ett offset mellan bokstäver, men den fungerar inget vidare, så om du inte har speciella skäl, låt den vara 0. En text börjar alltid i origo som är <0,0,0>, om du kommer ihåg det. Det var ju redan i del 1 som jag nämnde detta .

text {

ttf "timrom.ttf" "ABC" 1, 0 texture { T_Wood3 }

}

Figur 7-1. Text ABC med timrom.ttf font.

Fonterna som används av POV-Ray är så kallade True Type Fonts, med filtypen ttf. Några följer med POV-Ray såsom timrom.ttf, och några kan man hitta om man tittar i katalogen Fonts i Windows, men de flesta kan man hitta genom att surfa på nätet. Det finns hur många som helst att leka med, men kontrollera alltid copyright om du avser att publisera din bild.

Här är ett exempel på ABC med fonten WingDing som levereras med Windows. Jag har dessutom gjort texten lite tunnare i z-led.

text {

ttf "wingding.ttf" "ABC" 0.1, 0 texture { T_Wood3 }

}

(2)

Figure 7-2. Text ABC med font WingDing

Naturligtvis fungerar texture, finish, normal och alla förflyttningar som vanligt för ett text- objekt som för alla andra objekt.

Slumpen

De flesta tror att slumpen finns, men i POV-Ray måste man definiera upp hur slumpen ska fungera. Det är två funktionen som är inblandade, det är seed och rand. Seed, vilket betyder frö, är funktionen som initialiserar sekvensen av tal som rand genererar. Detta innebär att du får exakt samma sekvens av tal från fröet varje gång du renderar en bild. Så kan man

verkligen kalla detta slump . Rand genererar ett tal mellan 0.0 och 1.0 inklusive 0.0 och 1.0, så i de flesta fall måste man skala upp rand till ett område som är användbart.

Låt oss använda det första exemplet, kasta upp 100 sfärer slumpmässigt i luften och se efter vad som händer. Vi använder loopen från del 6 av denna introduktion.

#declare R1 = seed(123);

#declare Icounter = 0;

#while (Icounter < 10) #declare Jcounter = 0;

#while (Jcounter < 10) sphere { <0,0,0>, 0.2 pigment { Red }

translate <rand(R1)*10, rand(R1)*10, rand(R1)*10>

}

#declare Jcounter = Jcounter + 1;

#end

#declare Icounter = Icounter + 1;

#end

(3)

Figur 7-3. 100 sfärer slumpmässigt utkastade

Nu är det ju inte bara translate som man kan använda med slumpen till. Nästan var och varannan funtion tar ju ett tal som parameter, så låt oss utnyttja detta för att skapa en kaskad av sfärer med olika egenskaper.

#declare R1 = seed(13);

#declare Xcounter = 0;

#while (Xcounter < 50) #declare Zcounter = 0;

#while (Zcounter < 50) sphere { <0,0,0>, 0.2

pigment { rgbf <rand(R1), rand(R1), rand(R1), rand(R1)> }

finish { phong rand(R1) phong_size rand(R1)*100 reflection rand(R1)}

normal { bumps rand(R1) scale rand(R1) }

translate <rand(R1)*10, rand(R1)*10, rand(R1)*10>

}

#declare Zcounter = Zcounter + 1;

#end

#declare Xcounter = Xcounter + 1;

#end

Figur 7-4. 2500 sfärer med slumpmässinga egenskaper

Här finns oändliga möjligheter att experimentera. Inte alla inställningar ger resultat, men att ändra seed ger alltid resultat. Så här blir scenen om man ändrar seed från 13 till 2001. Snarlik, men om du jämför noga så är det inte samma scen.

(4)

Figur 7-4 med seed 2001 Brick

Vi har sett mönstret checker, som var ett av de första att användas inom ray-tracing-världen.

Det finns flera liknande, och nu ska jag visa två: brick och hexagon. Brick liknar mönstret checker genom att det tar två pigment, eller textures, medan hexagon är lite utökat då det tar tre pigment eller textures.

Vi börjar med brick och visar hur ett plan definieras med hjälp av detta.

plane { <0,1,0>, -1

texture { brick texture { T_Stone27 } , texture { T_Stone11 } } }

Figur 7-5. Mönstret brick med två sten-texturer

Mönstret brick är speciellt användbart för murar, då det var det som det skapades för.

Hexagon

Hexagon är, skulle man kunna säga, ett vackert slottsgolv på burk. Mönstret kräver tre pigment eller textures, och skapar direkt en känsla av elegant salongs-golv. Fortfarande med filen ”stones.inc”, så får vi.

plane { <0,1,0>, -1

(5)

texture { hexagon texture { T_Stone27 } , texture { T_Stone11 }, texture { T_Grnt1 } }

}

Figur 7-6. Hexagon med tre olika sten-texturer

Med trä istället får man ett inte helt dåligt parkettgolv, värdigt en säker POV-Raysare.

Figur 7-7. Hexagon med trä-textur

Detta var sista avsnittet i första delen. Jag har skummat lite på ytan av allt det som POV-Ray har att erbjuda, men det jag beskriver är fullt tillräckligt att göra underbara persistenta visioner av de vyer (POV), som du har. Testa själv, ofta, mera och ideligen, så kommer du också förstå tjusingen med att använda POV-Ray. (Förutom att det är gratis )

(6)

Och glöm inte att kolla in www.povray.org minst en gång per vecka, för där händer det saker hela tiden.

References

Related documents

Oxidative stress-related damage of retinal pigment epithelial cells.

Utbildningsminister Gustav Fridolin beskriver några av de förändringar som alla barn har rätt till I undervisningen i en bra förskola, vilket är grunden för ett jämlikt

Figure 23 Modal mineralogy of the major gangue minerals within different textural classes based on mineral maps produced from drill core images.. Figure 24 Sulphide content in vol

Our research has shown that Swedish companies within the clothing sector that are expanding on the European market are using a strategy that includes both physical stores

Abstract: This article discusses the effects of standard corruption measurement used in comparative research for accuracy in estimating and understanding corruption.. Implicitly,

Precis som i Pölsan, där smittan vänds till något delvis positivt, finns det i Bergtagen exempel där huvudkaraktären beskriver hur sjukdomen gör de drabbade speciella:... Man

Att läsa för hund kan skilja sig från andra typer av läs- ning, exempelvis läsa högt i klassrummet, läsa högt i smågrupper eller läsa tyst själv, eftersom

Detta rutnät har fått styra hela byggnadens utformning viket har gett en tydlig upprepning av rumsligheter och funktioner på varje våning.. Learning center