All pastes #338682 Raw Edit

X3d pb example

public text v1 · immutable
#338682 ·published 2007-02-03 17:04 UTC
rendered paste body

XIncludeFile "xtreme3d.pbi"


OpenWindow(0, 0, 0, 512, 384, "", #PB_Window_ScreenCentered | #PB_Window_SystemMenu)
OpenWindow(1, 0, 0, 512, 384, "", #WS_CHILD, WindowID(0))
CreateGadgetList(WindowID(0))
CreateGadgetList(WindowID(1))
  EngineCreate(WindowID(1))
  
  matlib.d = MaterialLibraryCreate()
  MaterialLibraryActivate(matlib)
  MaterialCreate("heightmap", "terrain.bmp", 0)
  MaterialCreate("ground", "snow512.jpg", 0)
  
  view1.d = ViewerCreate(0, 0, 640, 480)

  ViewerSetLighting(view1, 0)
  ViewerEnableFog(view1, 1)
  ViewerSetFogDistance(view1, 1, 2000)
  
  back.d = DummycubeCreate(0)
  scene.d = DummycubeCreate(0)
  ;//front=DummycubeCreate(0)
  
  heightdata.d = BmpHDSCreate("heightmap")
  
  terrain.d = TerrainCreate(0)
  ObjectSetDirection(terrain,0, 1, 0)
  ObjectSetScale(terrain, 10, 10, 1)
  TerrainSetCLodPrecision(terrain, 50)
  TerrainSetTileSize(terrain, 32)
  ;//TerrainSetTilesPerTexture(terrain,2)
  TerrainSetQualityStyle(terrain, 0)
  TerrainSetHeightData(terrain,heightdata)
  ;//TerrainSetOcclusionTesselate(terrain,1)
  ObjectSetMaterial(terrain, "ground")
  
  sky.d = SkydomeCreate(24, 12, back)
  sun.d = -10;
  SkydomeSetSunElevation(sky, sun)
  SkydomeAddRandomStars(sky, 100, #White)
  
  ;mx = WindowWidth(0)/2
  ;my = WindowHeight(0)/2
  mx = 512
  my = 384
  
  camPos.d = DummycubeCreate(scene)
  ObjectSetPosition(camPos, 0, 20, 0)
  
  camera.d = CameraCreate(camPos)
  CameraSetViewDepth(camera, 2000)
  ObjectSetPosition(camera, 0, 60, 0)
  
  ViewerSetCamera(view1, camera)
  
  MouseSetPosition(mx, my)
  
Repeat
  Select WindowEvent()
    Case #PB_Event_CloseWindow
      Break
    Case 0
      Update()
      ViewerRender(view1)
      posy.d = TerrainGetHeightAtObjectPosition(terrain, camPos)
      ObjectSetPositionY(camPos, posy)
      MouseLook(camPos, camera, mx, my)
      Delay(1)
  EndSelect
ForEver

EngineDestroy()