CapsAdmin

Untitled

Mar 28th, 2012
148
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. hvis ikke INIT da
  2.     glfw.ÅpneVindu(512, 512, 0, 0, 0, 0, 0, 0, GLFW_VINDU)
  3.     glfw.SettVinduTittel("meg # 2")
  4.     INIT = sant
  5. slutt
  6.  
  7. lokal ramme = 0
  8.  
  9. kam_pos = kam_pos eller Vek3(0, 0, 0)
  10. kam_vin = kam_vin eller Vin3(0, 0, 0)
  11.  
  12. funksjon dekode_obj(str)
  13.     lokal data = {}
  14.     lokal toppunktetene = {}
  15.     lokal normalene = {}
  16.     lokal polygoner = {}
  17.  
  18.     lokalt i = 1
  19.  
  20.     for t, x, y, z i str:gsamsvarer("(% S +)% s-(% S +)% s-(% S +)% s-(% S +)% s-\ n")
  21.         x, y, z = tilnummer(x), tilnummer(y), tilnummer(z)
  22.  
  23.         hvis t == "v" da
  24.             bord.setteinn(toppunktetene, {x = x, y = y, z = z})
  25.             i = i + 1
  26.         hvisikke t == "vn" da
  27.             bord.setteinn(normaler, {x = x, y = y, z = z})
  28.         hvisikke t == "f" da
  29.             bord.setteinn(
  30.                 polygoner,
  31.                 {
  32.                     [1] = toppunktetene [x],
  33.                     [2] = toppunktetene [y],
  34.                     [3] = toppunktetene [z],
  35.                 }
  36.             )
  37.         slutt
  38.     slutt
  39.  
  40.     for k, v parvis(normaler) gjør
  41.         polygoner [k]. n = v
  42.     slutt
  43.  
  44.     data.polygons = polygoner
  45.  
  46.     returnere data
  47. slutt
  48.  
  49. lokal FFT = 1
  50.  
  51. krok.Legg("FFT", 1, funksjon(l, r)
  52.     FFT = l + r
  53.     FFT = 0,2 ^ FFT * 0,5
  54. slutt)
  55.  
  56.  
  57. lokal active_models = {}
  58.  
  59. gjør - model
  60.     lokal META = {}
  61.     META.__indeks = META
  62.  
  63.     klasse.GetSet(META, "Pos", Vek3(0,0,0))
  64.     klasse.GetSet(META, "Vinkle", Vek3(0,0,0))
  65.     klasse.GetSet(META, "Scale", Vek3(1,1,1))
  66.     klasse.GetSet(META, "Størrelse", 1)
  67.     klasse.GetSet(META, "model", 1)
  68.  
  69.     funksjon META:SettModel(bane)
  70.         selv.obj = dekode_obj(file.Read(Bane("modeller /" .. bane)))
  71.         selv.Model = sti
  72.         slutt
  73.  
  74.         funksjon META:Draw()
  75.         hvis ikke selv.obj så tilbake slutten
  76.  
  77.         gl.MatrixMode(GL_MODELVIEW)
  78.         gl.LoadIdentity()
  79.  
  80.         gl.Oversatt(selv.pos.x, selv.pos.y, selv.pos.z)
  81.         gl.Rotere(selv.vin.p, 1, 0, 0)
  82.         gl.Rotere(selv.vin.y, 0, 1, 0)
  83.         gl.Rotere(selv.vin.r, 0, 0, 1)
  84.  
  85.         lokal s = selv.stør
  86.         gl.Scala(selv.scale.x * s, selv.scale.y * s, selv.scale.z * s)
  87.  
  88.         for nøkkel, data i ipairs(selv.obj.polygons) gjør
  89.             gl.Begin(GL_TRIANGLES)
  90.             lokal c = HSVToFarge(((nøkkel / # selv.obj.polygons) + frame/100) * 360, 1, 1)
  91.             gl.Farge3d(
  92.                 c.r * math.sin(FFT),
  93.                 c.g * math.cos(FFT),
  94.                 c.b * math.sin(FFT)
  95.             )
  96.             gl.Vertex3d(data [1]. x, data [1]. y, data [1]. z)
  97.             gl.Vertex3d(data [2]. x, data [2]. y, data [2]. z)
  98.             gl.Vertex3d(data [3]. x, data [3]. y, data [3]. z)
  99.             gl.End()
  100.         slutt
  101.     slutt
  102.  
  103.     funksjon Model(bane)
  104.         lokal selvstyre = setmetabord(
  105.         {
  106.             pos = Vek3(),
  107.             vin = Vin3(),
  108.             skala = Vek3(1,1,1),
  109.             stør = 1,
  110.             }, META
  111.         )
  112.         bord.setteinn(active_models, selv)
  113.  
  114.         tilbake selv
  115.     slutt
  116. slutt
  117.  
  118. lokal funksjon kalk_kamera()
  119.     hvis inngang.ErNøkkelNede(GLFW_KEY_SPACE) da
  120.         kam_pos = kam_pos -(kam_vin:getup() * 1)
  121.     hvisikke inngang.ErNøkkelNede(GLFW_KEY_LCTRL) da
  122.         kam_pos = kam_pos +(kam_vin:getup() * 1)
  123.     slutt
  124.  
  125.     hvis inngang.ErNøkkelNede(("W"):byte()) så
  126.         kam_pos = kam_pos +(kam_vin:FåForward() * 1)
  127.     hvisikke inngang.ErNøkkelNede(("S"):byte()) så
  128.         kam_pos = kam_pos -(kam_vin:FåForward() * 1)
  129.     slutt
  130.  
  131.     hvis inngang.ErNøkkelNede(("A"):byte()) så
  132.         kam_pos = kam_pos +(kam_vin:FåRight() * 1)
  133.     hvisikke inngang.ErNøkkelNede(("D"):byte()) så
  134.         kam_pos = kam_pos -(kam_vin:FåRight() * 1)
  135.     slutt
  136.  
  137.     hvis inngang.ErNøkkelNede(GLFW_KEY_UP) da
  138.         kam_vin.p = math.clamp(kam_vin.p - 4, -90, 90)
  139.     hvisikke inngang.ErNøkkelNede(GLFW_KEY_DOWN) da
  140.         kam_vin.p = math.clamp(kam_vin.p + 4, -90, 90)
  141.     slutt
  142.  
  143.     hvis inngang.ErNøkkelNede(GLFW_KEY_LEFT) da
  144.         kam_vin.y =(kam_vin.y - 4)% 360
  145.     hvisikke inngang.ErNøkkelNede(GLFW_KEY_RIGHT) da
  146.         kam_vin.y =(kam_vin.y + 4)% 360
  147.     slutt
  148. slutt
  149.  
  150. krok.Legg("PåOppdatering", "GL", funksjon()
  151.     lokal bredde, høyde = glfw.FåVinduStørelse()
  152.     ramme = glfw.FåTid() * 10
  153.     kalk_kamera()
  154.  
  155.     gl.VisPort(0, 0, bredde, høyde)
  156.  
  157.     gl.FjerneFarge(0, 0, 0, 1)
  158.     gl.Fjerne(GL_COLOR_BUFFER_BIT)
  159.  
  160.     gl.MatriseModus(GL_PROJECTION)
  161.     gl.LoadIdentity()
  162.     glu.Perspective(90, bredde / høyde, 0.5, 100)
  163.     gl.Rotere(kam_vin.p, 1, 0, 0)
  164.     gl.Rotere(kam_vin.y, 0, 1, 0)
  165.     gl.Oversatt(kam_pos.x, kam_pos.y, kam_pos.z)
  166.  
  167.     for nøkkel, obj parvis(active_models) gjør
  168.         obj:Tegn()
  169.     slutt
  170.  
  171.     glfw.ByttBufferene()
  172. slutt)
  173.  
  174. lokal obj = Model()
  175. obj:SettModel("pumpkin.obj")
  176. obj:SettStø(0,1)
  177. obj:SettVinkler(Vin3(10,0,0))
Advertisement
Add Comment
Please, Sign In to add comment