[ARHIIV] mängumeistrid
Pole sisse logitud. [Logi sisse ]
Mine lehekülje algusesse
Prinditav versioon | Telli teema e-mailile | Lisa lemmikutesse  
[?] maastiku sujuv ehitamine, rohkem nagu "cosinuse" matemaatika?
smr597
Level 3


Liitunud: 21.5.2008
Postitusi: 76
[EEMAL]




postitati 31.3.2009 19:02 Tsiteeri
[?] maastiku sujuv ehitamine, rohkem nagu "cosinuse" matemaatika?



Tere jälle

Kuna minu cosinuse sinuse ja tangensi matemaatika
arusaamine ei ole just kõgie parem siis,
kas keegi oskaks mulle jagada näppunäiteid kuidas "tõsta" maastiku pinda nii, et "küngas" mille ma teen oleks sujuv?
Et ei tekiks teravaid kristali sarnaseid "artefacte"?

Näiteks enamustes maastiku tegemise programmides on eraldi "smooth" funktsioon millega pärast neid "artefacte" siluda.
Aga oleks tore kohe alguses teha sujuvaid künkaid

Pisike näidis kood ka siis, copy paste ja vasaku hiire nupuga joonista künkaid, kui natuke oled joonistanud siis näed et künkad on väga "karvased"
Loodan, et keegi saab mind aidata :)

Koodike:
Kood:


Graphics3D 1024,768,0,2
SetBuffer BackBuffer()


CamY# = 200

terrain_size = 512;256
pivot=CreatePivot()
Camera = CreateCamera (pivot)
RotateEntity camera,45,0,0

TurnEntity CreateLight(),25,90+45,0

terrain = CreateTerrain (terrain_size)

TerrainDetail Terrain,20000,1
TerrainShading Terrain,1
PositionEntity Camera,0,CamY,0
PositionEntity terrain,-terrain_size/2,0,-terrain_size/2
ScaleEntity Terrain,1,50,1
EntityPickMode Terrain,2

brush=CreateSphere()
EntityAlpha brush,.5
EntityColor brush,255,0,0

MoveMouse GraphicsWidth()/2,GraphicsHeight()/2

Zone#=32.0:H#=.05

While Not KeyHit(1) = 1
msx=MouseXSpeed():msy=MouseYSpeed()
msz=MouseZSpeed()

;zone
If KeyDown(42)
If Msz
CamY#=CamY+CamY*.1*Float(MsZ)
If CamY<2 CamY=2
If CamY>256 CamY=256
PositionEntity Camera,0,CamY,0,0
EndIf
Else
If msz Zone=Zone+Zone*.1*Float(MsZ)
If zone>terrain_size/2 zone=terrain_size/2
If zone<2 zone=2
EndIf

; Camera Look
If MouseDown(2) TurnEntity pivot,0,-msx,0:TurnEntity camera,msy,0,0

; Modify the mesh
If MouseDown(1)
pick=CameraPick (camera,MouseX(),MouseY())
If pick=Terrain TerrainEdit(Terrain,PickedX(),PickedZ(),H,Zone)
EndIf

;position a placeholder
pic=CameraPick(camera,MouseX(),MouseY())
If pic
x#=PickedX()
y#=PickedY()
z#=PickedZ()
PositionEntity brush,x,y,z
sc#=Zone#*.5+2
ScaleEntity brush,sc,sc,sc
EndIf

;move camera
MoveEntity pivot,KeyDown(32)-KeyDown(30),0,KeyDown(17)-KeyDown(31)

;wireframe
If KeyHit(60) w=1-w:Wireframe w



UpdateWorld
RenderWorld
Color 150,150,0
Text 10,20," Mouse Left = Modify Terrain"
Text 10,40," F2 = WireFrame"
Text 10,60," scroll = Zone size ["+Zone+"]"

Text 10,100," WASD = move / Mouse Right - Look, Left Alt + Scroll - Cam height"


Flip


Wend
End

Function TerrainEdit(Terrain,pX#,pZ#,HAUTEUR#=.02,Zone#=25.0)
TFormPoint Px,0,Pz,0,terrain
PX=TFormedX():PZ=TFormedZ()

ZONE=ZONE/2
Local COEF#=90.0/ZONE

For X# = -Zone To ZONE
AH_X# = Cos(X*COEF)
For Z# = -Zone To ZONE
AH_Z# = Cos(Z*COEF)
AH_T# = AH_X*AH_Z*HAUTEUR+TerrainHeight(Terrain,Px+X,Pz+Z)
If AH_T>1 AH_T=1
If AH_T<0 AH_T=0
ModifyTerrain Terrain, Px+X,Pz+Z,AH_T,True
Next
Next
End Function



[Muudetud: 31.3.2009 smr597]

Vaata kasutaja profiili Otsi kasutaja postitusi Saada privaatsõnum
h0lx
Kohalik sitapea
Avatar

Liitunud: 10.4.2006
Postitusi: 1826
[EEMAL]




postitati 1.4.2009 01:37 Tsiteeri


Tsitaat:
Tsitaat: smr597
cosinuse sinuse ja tangensi matemaatika

XD

Trigonomeetriat mõtled?

http://i47.tinypic.com/x0w83p.gif
Moonwalk
Platform II: -DMI-; H0lx&jorssJõulumäng I: h0lx&jorss
Vaata kasutaja profiili Otsi kasutaja postitusi Saada privaatsõnum
smr597
Level 3


Liitunud: 21.5.2008
Postitusi: 76
[EEMAL]




postitati 1.4.2009 06:43 Tsiteeri


tõenäoliselt jah :D

Vaata kasutaja profiili Otsi kasutaja postitusi Saada privaatsõnum
Crypton

Avatar

Liitunud: 18.12.2005
Postitusi: 1604
[EEMAL]




postitati 1.4.2009 15:00 Tsiteeri


üldiselt ma enam Blitz3d asjat suurt ei jaga.
Lihtsalt, kui mingit koodi, suurt, kasvõi terve pagana projekti kopeerite foorumisse, siis olgu see ka kommenteeritud. Teine pole ka parima tahtmise juures võimeline dešifreerima, mis sul seal erinevad asjad teevad. Lihtsalt üks soe soovitus.
InCreator, teab vast selle kohta miskit rääkida, ta on teinud mingisuguse terrain asja?

Aga mingi arutluse teel saaks kah? Et lähtekohaks oleks hiire juures asuv verteks ja selle kõrgusest lähtuvalt muutuvad hiire raadiuses olevad verteksid teatud kõrgusele. Keskel oleks mõju kõige suurem ja mida kaugemale keskosast verteks on seda väiksem on kõrguse muutumise mõju.

Arvuliselt väljenduda on keerulisem, kuna kogemus antud asjas puudub, eriti 3D-s. xD, suurt ei aidanud vist kuhugi :D

Maze I: CryptonRalli III: Crypton<br>
Vaata kasutaja profiili Külasta kasutaja kodulehte Otsi kasutaja postitusi Saada privaatsõnum
h0lx
Kohalik sitapea
Avatar

Liitunud: 10.4.2006
Postitusi: 1826
[EEMAL]




postitati 1.4.2009 22:53 Tsiteeri


Trigonomeetria kohta niipalju, et teadmisi, mida ka kenasti rakendada saab, õpitakse kahjuks alles keskkoolis...
http://i47.tinypic.com/x0w83p.gif
Moonwalk
Platform II: -DMI-; H0lx&jorssJõulumäng I: h0lx&jorss
Vaata kasutaja profiili Otsi kasutaja postitusi Saada privaatsõnum
smr597
Level 3


Liitunud: 21.5.2008
Postitusi: 76
[EEMAL]




postitati 1.4.2009 23:16 Tsiteeri


Tsitaat:
Tsitaat: h0lx
Trigonomeetria kohta niipalju, et teadmisi, mida ka kenasti rakendada saab, õpitakse kahjuks alles keskkoolis...


Tõenäoliselt õpitakse ka kossiinuse raskusi ja sujuvusi algklassides?

Lihtsalt ja lühidalt, kui sul asja siia ei ole, siis ära raiska oma aega?

Vaata kasutaja profiili Otsi kasutaja postitusi Saada privaatsõnum
h0lx
Kohalik sitapea
Avatar

Liitunud: 10.4.2006
Postitusi: 1826
[EEMAL]




postitati 1.4.2009 23:27 Tsiteeri


Tsitaat:
Tsitaat: smr597
Tõenäoliselt õpitakse ka kossiinuse raskusi ja sujuvusi algklassides?

wat

Ja kui sa postitaks ka täpse küsimuse, mis ei sisalda kahte ekraanitäit koodi, siis ehk keegi viitsiks funktsiooni ka välja mõelda?

http://i47.tinypic.com/x0w83p.gif
Moonwalk
Platform II: -DMI-; H0lx&jorssJõulumäng I: h0lx&jorss
Vaata kasutaja profiili Otsi kasutaja postitusi Saada privaatsõnum

Hetkel loevad seda teemat:
Mitte ühtegi - 1 külaline

Mine lehekülje lõppu





Foorumi algbaas põhineb XMB mootoril, modifitseeritud Valter Pundi poolt
Kodulehekülg on tehtud Valter Pundi poolt vpundi ät gmail punkt komm