› Foros › PC › Software libre
import OpenGL
from OpenGL.GL import *
from OpenGL.GLUT import *
from OpenGL.GLU import *
from OpenGL.GL.ARB.vertex_buffer_object import *
from OpenGL.arrays import vbo
import numpy
import random
class chunk:
def __init__ (self):
self.size_tile = 0.64
self.DL_mapa = glGenLists(1)
self.load_map()
def draw(self):
glCallList(self.DL_mapa)
def load_map(self):
glNewList(self.DL_mapa, GL_COMPILE)
for x in xrange(16):
for y in xrange(1):
for z in range(16):
self.create_voxel(x,y,z)
glEndList()
def create_voxel(self,bx,by,bz):
tile = 1
if tile == 0:
return True
#actual position
bx = bx * self.size_tile
by = by * self.size_tile
bz = bz * self.size_tile
#
#texture_info_temp = [int(tile), 0];
#textureXOffset = float(texture_info_temp[0]/16.0)+0.001
#textureYOffset = float(16 - int(texture_info_temp[0]/16)/16.0)-0.001
#textureHeight = float(0.060)
#textureWidth = float(0.060)
size_tile2 = (self.size_tile/2)
#top
# glBegin(GL_QUADS)
# glTexCoord2f(textureXOffset, textureYOffset - textureHeight)
# glVertex3f( bx-(size_tile/2), by-(size_tile/2), by+(size_tile/2))
#
# glTexCoord2f(textureXOffset + textureWidth, textureYOffset - textureHeight)
# glVertex3f( bx + (size_tile/2), by-(size_tile/2), by+(size_tile/2))
#
# glTexCoord2f(textureXOffset + textureWidth, textureYOffset)
# glVertex3f( bx + (size_tile/2), by+(size_tile/2), by+(size_tile/2))
#
# glTexCoord2f(textureXOffset,textureYOffset)
# glVertex3f( bx-(size_tile/2),by+(size_tile/2), by+(size_tile/2))
# glEnd()
glBegin(GL_QUADS) # Begin drawing the color cube with 6 quads
# Top face (y = 1.0f)
glColor3f(0.0, random.uniform(0.0 , 1.0), 0.0)
glVertex3f( bx+(size_tile2), by+(size_tile2), bz-(size_tile2))
glVertex3f( bx-(size_tile2), by+(size_tile2), bz-(size_tile2))
glVertex3f( bx-(size_tile2), by+(size_tile2), bz+(size_tile2))
glVertex3f( bx+(size_tile2), by+(size_tile2), bz+(size_tile2))
# Bottom face (y = 1-(size_tile2/2.0f)
glColor3f(0.0, 0.0, 0.0)
glVertex3f( bx+(size_tile2), by-(size_tile2), bz+(size_tile2))
glVertex3f( bx-(size_tile2), by-(size_tile2), bz+(size_tile2))
glVertex3f( bx-(size_tile2), by-(size_tile2), bz-(size_tile2))
glVertex3f( bx+(size_tile2), by-(size_tile2), bz-(size_tile2))
# Front face (z = 1.0f)
glColor3f(0.0, 0.0, 0.0)
glVertex3f( bx+(size_tile2), by+(size_tile2), bz+(size_tile2))
glVertex3f( bx-(size_tile2), by+(size_tile2), bz+(size_tile2))
glVertex3f( bx-(size_tile2), by-(size_tile2), bz+(size_tile2))
glVertex3f( bx+(size_tile2), by-(size_tile2), bz+(size_tile2))
# Back face (z = 1-(size_tile2/2.0f)
glColor3f(0.0, 0.0, 0.0)
glVertex3f( bx+(size_tile2), by-(size_tile2), bz-(size_tile2))
glVertex3f( bx-(size_tile2), by-(size_tile2), bz-(size_tile2))
glVertex3f( bx-(size_tile2), by+(size_tile2), bz-(size_tile2))
glVertex3f( bx+(size_tile2), by+(size_tile2), bz-(size_tile2))
# Left face (x = 1-(size_tile2/2.0f)
glColor3f(0.0, 0.0, 0.0)
glVertex3f( bx-(size_tile2), by+(size_tile2), bz+(size_tile2))
glVertex3f( bx-(size_tile2), by+(size_tile2), bz-(size_tile2))
glVertex3f( bx-(size_tile2), by-(size_tile2), bz-(size_tile2))
glVertex3f( bx-(size_tile2), by-(size_tile2), bz+(size_tile2))
# Right face (x = 1.0f)
glColor3f(0.0, 0.0, 0.0)
glVertex3f( bx+(size_tile2), by+(size_tile2), bz-(size_tile2))
glVertex3f( bx+(size_tile2), by+(size_tile2), bz+(size_tile2))import OpenGL
from OpenGL.GL import *
from OpenGL.GLUT import *
from OpenGL.GLU import *
from OpenGL.GL.ARB.vertex_buffer_object import *
from OpenGL.arrays import vbo
from OpenGL.arrays import ArrayDatatype as ADT
import numpy
import random
class chunk:
def __init__ (self):
self.size_tile = 0.64
self.load_map()
def draw(self):
glBindBufferARB(GL_ARRAY_BUFFER_ARB, self.vboVertices)
glVertexPointer(3, GL_FLOAT, 8, 0)
glDrawArrays( GL_QUADS, 1, GL_UNSIGNED_SHORT)
glBindBufferARB(GL_ARRAY_BUFFER_ARB, 0)
def load_map(self):
self.vboVertices = glGenBuffersARB(1)
self.vboNormales = glGenBuffersARB(1)
self.vboTextura = glGenBuffersARB(1)
vbo_vertex = []
for z in range(16):
for y in range(1):
for x in range(16):
bx = x * self.size_tile
by = y * self.size_tile
bz = z * self.size_tile
size_tile2 = (self.size_tile/2)
v0 = (bx+(size_tile2), by+(size_tile2), bz-(size_tile2))
v1 = (bx-(size_tile2), by+(size_tile2), bz-(size_tile2))
v2 = (bx-(size_tile2), by+(size_tile2), bz+(size_tile2))
v3 = (bx+(size_tile2), by+(size_tile2), bz+(size_tile2))
vbo_vertex.append([v0,v1,v2, v3])
self.vertex = numpy.array(vbo_vertex, 'f')
glBindBufferARB( GL_ARRAY_BUFFER_ARB, self.vboVertices )
glBufferDataARB( GL_ARRAY_BUFFER_ARB, ADT.arrayByteCount(self.vertex), self.vertex, GL_STATIC_DRAW_ARB )
glBindBufferARB(GL_ARRAY_BUFFER_ARB, 0)
glVertex3f( bx+(size_tile2), by-(size_tile2), bz+(size_tile2))
glVertex3f( bx+(size_tile2), by-(size_tile2), bz-(size_tile2))
glEnd() # End of drawing color-cube
import OpenGL
from OpenGL.GL import *
from OpenGL.GLUT import *
from OpenGL.GLU import *
from OpenGL.GL.ARB.vertex_buffer_object import *
from OpenGL.arrays import vbo
from OpenGL.arrays import ArrayDatatype as ADT
import numpy
import random
class chunk:
def __init__ (self):
self.size_tile = 0.64
self.load_map()
def draw(self):
glBindBufferARB(GL_ARRAY_BUFFER_ARB, self.vboVertices)
glVertexPointer(3, GL_FLOAT, 8, 0)
glDrawArrays( GL_QUADS, 1, GL_UNSIGNED_SHORT)
glBindBufferARB(GL_ARRAY_BUFFER_ARB, 0)
def load_map(self):
self.vboVertices = glGenBuffersARB(1)
self.vboNormales = glGenBuffersARB(1)
self.vboTextura = glGenBuffersARB(1)
vbo_vertex = []
for z in range(16):
for y in range(1):
for x in range(16):
bx = x * self.size_tile
by = y * self.size_tile
bz = z * self.size_tile
size_tile2 = (self.size_tile/2)
v0 = (bx+(size_tile2), by+(size_tile2), bz-(size_tile2))
v1 = (bx-(size_tile2), by+(size_tile2), bz-(size_tile2))
v2 = (bx-(size_tile2), by+(size_tile2), bz+(size_tile2))
v3 = (bx+(size_tile2), by+(size_tile2), bz+(size_tile2))
vbo_vertex.append([v0,v1,v2, v3])
self.vertex = numpy.array(vbo_vertex, 'f')
glBindBufferARB( GL_ARRAY_BUFFER_ARB, self.vboVertices )
glBufferDataARB( GL_ARRAY_BUFFER_ARB, ADT.arrayByteCount(self.vertex), self.vertex, GL_STATIC_DRAW_ARB )
glBindBufferARB(GL_ARRAY_BUFFER_ARB, 0)