Lighthouse3d.com

Title: Terrain Generator

Latest Version: 1.2.5

Author: Antnio Ramires Fernandes

Downloads:

  • Win32 exe: tgwin.zip (89K)
  • Sources (win32 and linux) : tgsource.zip (30K)
  • Example TGA images: tgimages.zip (122K)
  • Requirements: GLUI v2 (only to build the sources), GLUT, OpenGL.

    Note: you may need to edit the makefile in Linux to set the paths for your system.

    Features:

    Version 1.2.5:

  • Terrain smoothing with matrix filters
  • Version 1.2:

  • Particle deposition algorithm for terrain generation
  • Terrain smoothing
  • simple water plane
  • Version 1.1:

  • Added the mid point displacement algorithm for terrain generation
  • Version 1.0:

  • Algorithms for terrain generation: Fault and Circles
  • GLUI interface.
  • Full control over the parameters.
  • Two navigation modes: Examine and Fly.
  • OpenGL window grabber.
  • Save the height map as a TGA image.
  • Load a TGA image (non-compressed, and no index colors) and build the height map.
  • Very Short Users Manual (for more information see the Terrain Tutorial):

    Terrain Module:

  • Image: input the file name of a non-compressed RGB(A) or Greyscale TGA image. A height map will be built using the image data.
  • Generate: takes a width and height and generates a flat terrain
  • Surface Type: Choose between Triangles and Quads.
  • Surface Mode: Wireframe or Solid
  • Surface Lighting: OpenGL, Simulated, or Off
  • Surface Normals: if checked normals will be generated for the height map
  • Scale Heights: set the minimum and maximum height for the surface.
  • Scale Heights Apply: Apply the height scale.
  • Scale Heights Reset: Set the minimum height to 0 and the maximum height to 20
  • Show water plane: shows a blue horizontal plane.
  • Height: set the height of the water plane
  • Screen Shot: Grabs the OpenGL and saves it as a TGA image. Filenames are given sequentially, 3dtechscreenxxx, where xxx starts at 0.
  • Save as TGA: Convert the height field to a TGA image
  • Iterate
  • Function: select the function for terrain generation
  • Random Seed: random seeds only take effect when a new terrain is generated
  • Max. Disp: Selects the maximum displacement, i.e. the displacement for the first iteration
  • Min. Disp: Select the mimimum displacement
  • Interval: The displacement will decrease from max disp to min disp over a number of iterations, this field specifies that number of iterations. After the number of iterations is reached the displacement will be equal to the minimum displacement
  • Wave Size: Only valid for Fault-Sine and Fault-Cosine. It is the amplitude of the function. The larger the smoother the terrain.
  • Circle Size: Only valid for the circles algorithm. It is the radius of the circle
  • Sticking Particles: sets the particle mode. If checked the particles will stick where they are deposited, otherwise they will roll to form a smoother surface
  • Add. iterations: input here a number of iterations to add to the current total
  • it done: displays the number of iterations to date
  • Show: if checked it will show every iteration, otherwise you'll only see the results in the end.
  • Start: adds the number of iterations in "Add. iterations" to the total counter and starts iterating
  • Stop: stops the terrain generation
  • Roughness: determines the general look of the terrain, 1 is the default value. Higher values create rougher terrains.
  • Steps: The number of steps for the midpoint displacement algorithm. This determines the size of the terrain, so if the step is n, the terrain will be 2^n+1. For instance for n = 7, will end up with a terrain 129x129.
  • Roughness: sets the roughness of the surface for the midpoint displacement algorithm. Use higher values for rougher surfaces, smaller values will provide a smoother terrain
  • Steps: the number of iterations for the midpoint displacement algorithm. The terrain will be a square with ((2^n)+1) x ((2^n)+1), where n is the number of steps.
  • k: smoothing constant. Varies between 0 and 1. Higher values provide smoother surfaces.
  • Show Filter Options: Opens the Filter Options window
  • Navigation:

  • Examine: Use the GLUI controls
  • Fly: arrows move and rotate the camera, the mouse (button pressed) also changes the orientation. (note: if the mouse button is pressed and you press either up or down you'll move much faster than without the mouse button pressed)
  • Filter Options:

  • Filter: Select one of the predefined filters
  • Go For It!: Apply the filter defined in the matrix
  • Close Me: Close this window
  • The entries in the Matrix panel show the filter to apply. You can edit these values to create your own filters.

  • }[6X>[rDj3%';sEBmdxnayvV RDo.g:N7  B ?z/ސUv/Ϟ?V΂| >^J{pA\[NS~j۵E|XqM:uaZtU_w MuBXD$+3p(V?Pvݰ?ww8=nb۶i=Z/(߅aE)0}|EM5Mb0ois\LBN-AV!]p,WO"ڵm`1 ,5X إ3x~L~_TyÞϣVs>5WD4?bRdN(&PWLF(Y,uQꧨAM@ƝO(E&{\y8:'|m*D!v5%eUc{,hlRt:QlƑz`DZXCr~H;R]R@=O!Da2 e8 :ƱVʸa1 =3Acƨa}}Vui[-/ȷuL:?Wz &͋% LEƥ8CwKLb_iĬxT"諌s Lbi|l 5vZw98tMDγ'$ТvZ)s+R(Yכm0 yW"n;2Gl"q8Ӫ$oi8GvA'##t%Z;.ݴ #ۉLGB;Ӌ/ w݅*nheMe&DRxUxMՆ[ z h6!\4 ʵCE*ϊC3oIdgQtɓibGD76: ` ;0xPY"mĴУ`2iCknim`miM `X09LQ{4VYVM D&i"%yc֝Ը;jc.E۫̓8;+ #s1=CF4t,Fj0^r t ֻ6゗EZٹvl XZim&VƪfPMhO.۠ 6K-j :&T5( }1'}/'\@jeN0MئQ;JvwŴ0&OCs0 _øl\޶c[g*''jȦ[( _;*Ich {T켃 Т(Mwۋ@dI'=&Ő.hrib!O5~ ݌8dxXJ ᎏՊEі)E,Pm)Cpbzwrb iщ߄fO DnΡq0%B^e$D,c^HD9uKK). p)ZWló߀=*WȽW!"G *&@iJ`-`Z½AŅۦKrlz]~QҜ^p?KaP`MJ-Uلc:-9z"]ʼBJk 澉WVؤLmj!8^Mwp mz;5g_ i)&{cJ|`Ϧ T4SryXt !(DjM(2V<S$W*yJO\ +a+9?XEx 3kPT8&^\8$;!VHxUyӒ+. 0. ykkm+q g3;b ʃ00$.϶]NJ0׉﫜gc#E~K̐B}t'* vz 2H8@N(c{;&Bҹ cńhxiYYff`G4.A[ ۆ1l0E"FE\v-7',pq1 6Q[jWrCa `Ι0@Rbz^6lHwGm1C-w8L{ {@- lqA@4 V 6ҙ(KQ{xP| &_n eh@j©1oLnP*@A_R^ׇ-6!Èv}Qn[׍1}l`FIfѷ# %]"=b(Sѱ0)S 1!u[7Q:Fj3=x:RGIj. }0Ab3}Pls9)0ІQ i^. Dߓ|bjHWj MHQ<3NBDА& VDSr+mJ!6k{J0)WIObJX\rWQޅ hԽQpzu4T>Ⱥf:vfR’j|/g$6Crؤ҄9Bgmb;YHHmǜ|+ Ä*ga{ڋdRSD[uq.q <ǴJDӲ|#=*G3-%Qvdj+Rc8`& W&ĕWE,{wO"VQ(5јviDYTj'cHy ,CԶ!rj<{=[ [P{k[<:]1j*k×d}0=;j < >*1V "n'ڧA˨beT(~)x" Zun"ϾTsXP/pB^Jw Y |'cYZkJa߄qBKx<{Lޯ,hI=1R>Wf']z+6*a׺Hp$d ?텴م/ZLjnan7K :_q5Ďyc`RH+FmJgM#b H] g2օR%L.Mk#6ErNKxVqJS벴Z!$媳Z.D/6o2p+d^mC5ٖ{$k3xЙL;dP2 fz6S݇0}U?` 3U\?X;``h̭Md`RlyhηbԞ:FOѿQܯ帙woc+rYBlnKaN܉e,VG"},q_[;$p}Ӗ([,w+,0!fR,Bawi,3Ȗ0@f1x\JvB'HϽ8*xGaT{A"'Z`E~Kh4H<')Ɂ4E3@$;íKt\.[}j%!kh_0X :781LYC͢R{rl䧯i,+ ,Lc!z},"M]m3qn%RyA>5#t9ã7ȎD;!Jڧ2;r:Z= At K8J;N0z;3&=MC.:ܢޣ#e}ư( - q7x+:1؞q{,5+9's ,[=T ,y4ʰt@y 7ˡBk#*L2<aZ ⊌~VUV\BX6͹yVe1vpsvˆ`o#y憶"b0Imm0(_Wl( Foc3T:ܤvK tԙaxnze(r%ƴYAN2n\L ;0: ܘ2ogIm~b:|[bGNG5㥘;ҽbEvN}vxFi O 3wEػiO3˭|Fקta m;tw\CK;5vewݶί~5!kZSHŽ8_=5F؍QhpLt |K=1߫gßO\-{˟pOWby$X@:KtwqknҀQӒk#^@A`#DVwrB1 R O_`խ_\ph6<%Ț?:%kr`JnY:n[ǭuUpGb{8-O?U%ks`Myndu?[PGm6^'v9O8lbBeFe M[ʄ/YcB1$h N,BHy̦DϐM8ٙª.;u;UBv_~8ZpW;Κ%< ?EvDm}eO} Q~br\hi3j}>^Hiʰ/7M@݂ꂮ{2@gT PBCrqV]ѸC/Wu]S!c}xV iVL99<$9#yKUEC+Z(}"l$s y94@n&HrT9J$]k~[K!?N[kma($zvb\JE*Fv72ˍj@CU+qb[x*Tu_2R].m9]sS YqSmz8PGH׬cD+d 4R#zDoxNL u2;S5 f26]vxDOgZ%v+Y]^8Tf88}܏G] bXהPFfdF`smA\ aB6agE*z @D_LGȨ i`iUcI'sŅ,K=Q6hJRYM:Qb49\3օ Qa\¿6cS̠Os#&o:f`'{z#G5.=)~%@oi'*PS8]%)}4b4`GҐ%WX +YgӒnD!F Nfs7mՄI+M1D*R2Tq%L'헛$Ѫߒ$gri~*9lkdX0C)JQ)sH pv?"犙C,2q1{u@Yڷ˸M6kЈES"rМS:`4]=l+J`4&f(Ng~@EpPpNq&@f,hHp=x RSДY[CBҲP眃J6[{d'5%ӧ'MCnw@@"6-ե2^K)1r;:Cs:q ib$]Ep ,™ CJZWӍÛQG 3w}jgAP6`Þ#`t2li&L_%FĎ$XGG5 ϱG]}"BaŜxw>zn;<iod`nϙ eDl:/spLD2,lѵkJZ0{TtA炸\t іr\on}k# |Srg*pY/ ~X;mn9LXģp` ;N_WH}Hqgb;kΦ.;&JcmAޠuҬ/u茤4k@֢Rb9 /$`\T$奷 <_i [7ppq} m=ui|Ib}M+NJsw$G=Kfy&UKp7N>.=cDQL2!?IZ&]tYj׸ 4HÙ0Q[w|ӊwAxt4/5,=3qf$ؙ!jjN| 9.->50ki\&sޫ>Nb?tud $5:sWH"W,<#o!6q_IZ0JWߑ˜#N002үK\n: ĿH匓?[2y֭#ı;2'e"JڶÑlNq)ngNs<8Qk'<1KY~Fz2l@ яɷqC謌M/p!bє$K8o7I+\z:ֽ6zƶ| ( LƄcyJR=vձ {zMuJ1H'ǩ/tVTI?],\|?˩UnQ96bImrݭj *lTzTk[|3f r1krR\EGԭ)T0rvG1cMUHޘ<8zV![eqy Hz+hr<W FPh~ߝīR'Wa@_̿cx\ &b_Bnx(B4M$ɻP:RnxȦDeYcU^9bRwHQVp$|my U[QA2"h^Q¸j&[=v՞a}C׍%Q&́\4tYP^eKTǘZ"*7Exl pJeCԌ1N I>nvx?H=,n[=U pm}AF|@z]fc!sy$e[c?&a^XJG ]FU êI#mFW~LPZ'r̿^={+[J|?E GU~蘿W߾ߏe94Y׫wZ|?en\g^GA:hrD=,+F3/ =K>"7t^'+V>1 >ݲ|u١E"Vae:0rSa0l"_OVVB,tJ3"ŦkW\5& AYeݺcs![ƂQ׏Qѱpe,V[B;'>Ib挶}KP֣wTQݣ5}讱v" H598RR,K15AIzFGwK1a|GM)PDŰ4GZMRfSݷH *-stϚst/i6E~=eƅ8J+wjT3]/+@YFeˇ){=;C,8{d[ Wpw(%@%?l(|0C-?$CEWaXBؓXX8V['ҦţTs-}5J"%[oӾp}q+u,(B|+^HXx\{x&T9@af=>o5R9n|^cHiU<]%K_|#7_+yY%$Rq+//X <6ǥH# 5^(*/-P޵c;f'èxV+fz{# !Jf$L d)"ĹQ&;Yvpt8Z;Ą?h7 |JVo0w1Gu6 ;-辝iux.?`9uo34]h]Qq,f_$}Dht?oگp/k$GC:4jK< ;jC@GAB&av5wx'"3?40fynk7𞉷r4SN/Wfӷډxkأsqģ0_^)'ĵsd oSzI)4y'Js!e"71py # ̣ڪ2Nj::~ B]W]a%_?͏_~~ .fs>ꕪ0xtk1<6:{vX$beAMa;<܆+;>L+SPTmR׾m;rzs%.I~iϦcԯaC/ .盪 d6ڝ-RRHjm >=SG =OcV\v[]VL{Œ)˴ y 4(>&0_\Z̕23;ȃ 2zFo2LTU-F{l*n DQRpIVc SR~( 7qln^M72p ]z,(gVѪ9DlYWWo$u]>ڃ#:z6,yq#CoD<=/TG.`VJSO`U^e+? _tJK3 Dn d7I`,NBx44 O{ +-EdnWS[(&y,ŻPl|32Si43?h2~LY#*ȕ:k}b @t;!jYN%MUbeE&Ki&9_L#S>У$6В} yQK]QyL+ poMDK1NJJR:\RrƷZqrSg"Ɍ gsnS0jvZ :`²KvπA F4]Ynb#fEl=|G 2 0hDM ZŦ^JÊ;ޒȅjZ {4 ENY RB#ȹx8"b'?4T~;˴! #6^^u Ϣa_ xy|2[n +/>ӸV1ڑX¥XEQ]sr(CeLJ#>KDZQ)N@&!!ҴW Oy z7būWo޽߶ҕqn[(jЎXݴ>Ǚ)O(y$l2ge^6.ON'JLbgJi$ks))`0zcjcc`.G#^eW :LDٽ1;^~/K}g] =G +ڀ}UV+d1JP _-0:']*1?WJQZ#GѨklc5Pe4 NV*2J"=*߳ouc*+.6UJ@LQ;"=^}hs6n>^ݐvjAZ3bN5WUCdX8bh@Eu~sf͢7P"q{s~ 6&wדs wusCFywGLεv;YirOt40= X~91Pmt",SUKCkSUwЙA082&ThCч0q;4:v'' \k^/%:]|Ï83e\ :B, =#qK1:yO'`U|wF`L,4v>͊_nRQ_qjvM@}S IWIa HCc(I.Y(4ixzbiGƕl` y j%?-B:@s4ׅB460 fj[Rg&h{;ʯJMlQW G)֌\k]S]zIQl:hUAZ`̤X. =6Ql%Nc+h @_ES{<cW.X˙N r{5G] ~/_&{`yJc'ؼ>y\DkQ4Yzq4m ҳ!=gZ ?,դK)VJ+A ff5$´F}ڴy.E% ENuSq9\nWЧO#.C1pU `ikM)tim&phPmov}(mHKL@Kр6}f_<`1FU<[btIn \ ߘhwi 2 \d!Fnw.\0v*X b9bZ;+*.Wx'{S=1 2Cۛ[%:ֺ}kƬxf٨Aѭ4 ,պʍix|BΥӬ^lE` p%uUns;v3T}oͫ94q Gz?d1?M،$Voi7ⱉp AqœSzi(ʈq]N˳F