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.

  • Z6y ];CƼ.YN%s*[Tlש-Ϭ "AcBёd<)Hu)n4ݛ0cյ~\׷B [튂OX(<~X1C]Kl:/e}ݝ8y6K9fԏu{jS[@O4t<^UմGiׯiZ¹[_Dk- Wf8{PF{F/*T  b ,n[tfQҖñA$xs1 y̧w2B1o5WzN{Ubߦ(avώ\C I5x)&gA{lJċ&cd12h@S=\7K(sRQ`EF@IN ~Ur]mohV(ƷyRL }|dJ!lvKO܁d,^M ’&^z!K0lɆB0I0;crUuq)gYЁTh+Qb$m%鬩,80Ds m2cc=3ϜG㠍E3u8! (IӗOxzVng_(uNIA.D7Q@x'b U'[\?I^{͵у28R~L|qXwSEN#zs;hf=g"^yKϷ@QT.EH?`nVv m?s! U٤0j-BH?6^Y",Ry0C)sg,k;WWļgQ`]F-E_߿o-;܅dygZmc 0P50j3P IAY:h>`O!!鷬,$A SDkJ2.):)JyP%4 N6 擗E''vKgks6xd* F#eNeu[wK .ŕgq/dL^ou\R] |ss]׬ IۀU[wL߫ZN =.";sPdVwmű:bd@^ܵ`$cQz!1'JhBvӛ#H;ׅTNi;Օ<4hd֧$HbբqAk?rDe9_gbxmd%KDC`ŢB4b0܏G|D c%e3(,IdGbGL2 !_B%73w VMf=/JXo+<廉?ѩrZ?~)H)>4f#N<[&p2\-$w{E>KX(Uv^xR.%tWZRmW k+R8^ ,$Y0IM,E`Ueh ֪ jkeZWW uEW fvsqycOrin1R704XX_W_"Uhr=D^(/L!!% e: w7榐"%m"͝G}<? |LR8B " P`VI])U2%$`n >Uхt+[x G6G&ɞ `XfS:;' 58XP>dRL*8`R0V܅LYncKj|F*i^ εTקOrJbt7L٦DBIYnmwC'(҂ qJ&ᵀ?^Q^nNv5@K mK6fu`iT̂*tfԬγx+k^~Wlkܼ~МAbSα7.95.~Z.7>9]yF|*.vˇvrX/ ᕗo~z;C 9 '3$@,]xz;uT=+gjUgu6t <*aˈS"N85.\sNUˇo^&;~'qߴ6]U\Gz~p쮸뫆our۸Jڗ]E0[pE5` .BY i ʃe&}s&{3ryOgK|jy:8 ?v5|,bg[L[aks=&՘(y=^MoΗCD">l+7]$HH:i2h]%rB ǁ[ UZSTN,%@NsVgn axY'pԹ3J`,S198}d;NvTN>u}mw8KO7.lMVKdx:G',TWA{Vpbb RkZ6Sq6r.;Vz yb9cNziag='ɵֳzh>ʀݗKӼl0>MqoLo2Ke5~6?Y2D}b39qu'YKy<UcaN'IVwUk~:F |<[/I}\(ΌoKQ$it}K ʨ$L2tLK] &B$a`5. 5߳1%[T=71N?9^0>kJb+I ]0DG>7N\Bċ_兟0gNz17d?@PM]@X$6&^0=X3qEC?߆ˏ| c.,7qFҙtD؉DO@N"]{HQ͕A-W>/}K&Q0Fea`p㯠 ^6/c uH5lc{dSCX~8d.(E/zqJMЫ8!P@ ˛((eaټtOS؁P[|Yi{z&Dž.Xroh=<[DhQZh:[1Ӄ)2-0A)!KC\<1Rga[$0A(2uk8K ř aQ֢q a{.s[*Uy<-hGG/O8j9†v"UJfu,}nJ!"#Q)Ӂ]si ۉlTU콘' #jhI@7w\YёVU+6Z)z zch.k6㳟@6k6rbC&+61~4k5V)kkx:PXAXyl( ^xoO9 .,r?-Q4hS`T ~+@%B? l :C&a`"Y["vr:OD&H]0%Q"M 7j<7#{D*[IeZPyD(YE_Ϙ$Y4(M;K~s`8ۇ%I-PV`+No9i q.f׫OGgޗ37e:{n3LǕ s?&3t<`[FdPltouvy`tu|f `3$B7?.5s Ym*/!k Iu Ù׭QL]ܵG,}9"dT$h^;V+M㌟{|bZ~(fc'4>{rSxjE \v4ϳ*✴ߋufsq|c{0Ally_qԯQyn]րLؐ BF&p?P/g ۣbg"1ާuH/&8W_5`>bq_[!#rR2 G!S)5f% ^\f#8kO?VUfW%;>%Ozn T*mOCq@2GVSf:g9{{{5ۃPK~cp=ؙ#w~]1 L$ua;Q[|"!^X'ބL94= 7MzZC`r_{ ZomEX3a ҹLP u9XɔA j {L^Yw3Ȃs;#3H!`(7RqFWe?&\;X}M3`&Lvj|`]ӧiNq<4Y[Mvm,+)XN*94N^Iy.IBM`iMSWd;1W7״G LvjD`(D9i/ASxQfrDF:1s?=8;8;=jO&MU4D1¢9rDY2?4Ɂyr(h:eȴr:ALPoؐ?`WrE*5-Sf#f+-Ej [mہa e}˹#gxl?~y̏-d:qG#Ǜ N0NIgRpϋvndBO3oD7BdAҘdP?PlmkMd϶SKRط2]0aDY;>f]vXhm|>a)-bp^z3JNnWheLKV?]{#c'ՒQy fAqx| TD17Yp߀ҏfw)ٟl@a< 'yYcVDQ.&/s@2xDw師S\@DbO/+l:F޹v! o݂v@ݵ:2 } šߒΎh%h-VON'`1jiLJR# .+#ۚgG< fFSLFtCLB?Sd+o\zb<6 <3Fq|r={a<9᧵Wt$y҅"zisLmdcQJ2]=ヴ(~H-sF4"؟(gX#jƲe,*jwp>Tg4l5.׿>b[ n%kT` 2Xܛ$RBI …ĻyoXsԬ/b% tU{in_12LRg_YYL^3߳1΅1RM& cJD]C:ح@sξ8ҐŰb?; CV^d`nxJ1T8VnxeSmm>h;0:N G XO,;t2?AnЗP5T6#ږ!4n~cAcLIZE,Ѣ\{RqĠ$Y$yv^gR08k{9EbD%~3%m5._l6l>@snհ#͐xKLr{c_PĮ w|rkdfat/*fO ԍz0,W]|_e_t?_Q]}ڭ ;^)RYc)np&m Mp22(OD#[#5ky_w0t Lc? Y;5_1Nx%lr*!m\8CIi?À\yyaLE`-[rV*rU1"E`p)F}2Q݆൑TH}¸b* iAat_9tkeݱWɪ*I6^zUBIv_ 7(]r8>,OUI$YI8wd[DKP$gh{gȋ IPl LIBDnx† . @J(^y0lJ@H(?6ߧ --ǹq: t 8ҵwpJ-Cmj4 T:Gb[$l/${5ڗ<*YglxH;_\egx]V.Ӗ65RC) xMҢK+ġ"DC'Ϗ`7;~:s;y;p6\:L^׋ݡ{NאxAA]"46D;ra Y>`~ ĺ^%Y6rV.&OE%CDRp-ՐCz-PVMZOQY) o{ E3\@fk<E s2E5[>u:u,2~<9ѹ٠>nQ+Vm%GILDg4С_RVkJyj~bҟJ2!֘ 4;Ա|{j{d(,W3:Gi h bp]Xp%#" =  Ħ$9H}^^mҙ&DM48 R$'w.0J!/GC1QR)fwP>0\5:Ƣ38Z^ LQ5\TB+RrWCrH2O&D!=X)qN2C^I>P).<T@s9pLTBP}zy֑/sW(%\}ٛPewc]T)<4S{Z&`BQ4Lu5yaG5Jp,4`ǖk=J=4c*^!aQKנ#w}8$ZYg4ѐZR%q6ڤk Б}LH\h-=Ft 4}6$aBDi]<)Nl|,Y3.[U Xk%#JϭwP5Y!ְb ѰMN^wmʳu#t^g±1\łqJ^)l NsA.ٛ+Yءl ԀaƯwfuoʦb:MPըޞ1Wm[YC>':ŵ[BWEDQ" 1NFwqm ,!8G/BqY֣E. -XOuܺ!Y#NW78c^j#=F?jШДD&UMDtM[M޺-Er/4並zo7v_5ЕDİYgN:[#dۜ5p;X|2Hi0oqq iÎzBi)6,;6/MQ}: m͞5[id9A}|#d;ݪ9UH>@7p7dA~b-o*E?nt!"TQfMnr{A3lY 8>nm57y-5-eEAC )c]EjUj, S  =غa%e=p=3"O28Z`E竷VdB㬗o3eN' E.QL jT9GT9٨xYhvWh|܍KVPJ>cvY_PxFϭ];XVC*,xZli_+CS ۯtMVUMu d;JP'}H6~'ÌT#\Vм%+mv[lO@M O‡Bv &6!ltH!&}4L/+' ,9P'Y%\?nhrg 9@#avG霽| ̗H[=zr2 }/}jOsJb\'?e;}4GS91؝M{v)39[}ܜZh^7%67sUJzn4X4S=jxmo=sJyR%munh^oS%~,UJ ^zIɿhD>}|}c"l!45d8_nZ"-`jl , ]\`]ŕpq'C q=>6i:>6dJ2n{wXg%|37p$1Tˋ͢ݸb-`'?8uA[٧Y\['{Hmr'w.a: RNh{蟊O9b]ko)uE=h+ Ǜ0o RYl(R%)J6 9(,6syΐ91$yx&ʬ-7/4G#i h+f* *dUquę5S?0MN9niz:"`c/?M>auq B䪦9u̢tmV;65͞)ijJR6.d:Ο|b8FZcRbLYI%28q1%|0~i;$1Rjvd()HHsbjT{8␜"'I׈'_2S5֕O0Msj'm"r}r%\ kPRC$g8gYŮ~Z݈AA7 04:_-QP˸kiMکr"!CDOxK3)Ro#q#Os:p$T+H-kOXg'Խ7x |r;/TRK#C&R7- a Pʪ]eIqV[$TVzθhxȽ,R̆NMRWF7ř)>n'L\bZ5!Š$G(W=!"|^62h\*)+&T"5c?@jRxGŨ$3,뙣3QHsbFk+]O4Oe@SNPe4_I[ORf֢ pxh[?hً3оuu&|fJPD vY` {:[ kC)?Aw?>z( T$&M[s>CeȒ(>ْ̬ޠT9b`!a-i|pa#uYB}ʰ[V2OdVGv/v`)ޛ*(X[eMy,&#mê=ʅWY(^So24Ս.QDmd'hk@oM)xTcFtюK#b"=$]R @T+[ |MD{"*ՄTHrXϻ\ں5kZ^JyUxT56]kKՐ9+uX۰45SFٞ$ Ku. pZ/:aŠ-`@Լp1zfPfg|3\!]mT wyʫSey}=؅&Z7=}4@H #-Մ"`?,gf긠Z. V p~6⡗aRw`U\N @ NE@Q@CBpNS&pĴWA q` e Y[Ka`.ӥmmCQګXRwXT .,kA }/>dt!쯍/uѳēwb g6c I_TwIsRVTmRxF;>BUmhKmԎLKS_Û7H]q_)BՃGR]`y0_~C%|SJָ8_ԔtwI$uבA!7k:}fvUuu߿Z;y,I󤐇Τ(qFw:ɎY-~b<0 Vax`$;j"w%E(Pk}П2P|8̩UǴŠLW#ԗ i͚