Add rendering layer for chunk section edges.
Reveals that far too many chunk sections are being created. Edges have odd diagonals but I'll leave it for now.
This commit is contained in:
parent
ffa4c0a19a
commit
cc4d4f5799
37
src/mcedit2/rendering/chunkmeshes/chunksections.py
Normal file
37
src/mcedit2/rendering/chunkmeshes/chunksections.py
Normal file
@ -0,0 +1,37 @@
|
||||
"""
|
||||
${NAME}
|
||||
"""
|
||||
from __future__ import absolute_import, division, print_function, unicode_literals
|
||||
import logging
|
||||
from OpenGL import GL
|
||||
import numpy
|
||||
from mcedit2.rendering import renderstates, scenegraph
|
||||
from mcedit2.rendering.blockmeshes import standardCubeTemplates
|
||||
from mcedit2.rendering.blockmeshes import ChunkMeshBase
|
||||
from mcedit2.rendering.layers import Layer
|
||||
from mcedit2.rendering.slices import _XYZ, _RGBA
|
||||
from mcedit2.rendering.vertexarraybuffer import VertexArrayBuffer
|
||||
|
||||
log = logging.getLogger(__name__)
|
||||
|
||||
class ChunkSectionsRenderer(ChunkMeshBase):
|
||||
layer = Layer.ChunkSections
|
||||
renderstate = renderstates.RenderstateEntityNode
|
||||
color = (255, 200, 255)
|
||||
|
||||
vertexTemplate = numpy.zeros((6, 4, 4), 'float32')
|
||||
vertexTemplate[_XYZ] = standardCubeTemplates[_XYZ]
|
||||
vertexTemplate[_XYZ] *= (16, 16, 16)
|
||||
vertexTemplate.view('uint8')[_RGBA] = color + (72,)
|
||||
|
||||
def makeChunkVertices(self, chunk, _limitBox):
|
||||
positions = chunk.sectionPositions()
|
||||
|
||||
buffer = VertexArrayBuffer((len(positions), 6, 4), GL.GL_LINE_STRIP, textures=False, lights=False)
|
||||
for i, cy in enumerate(positions):
|
||||
buffer.buffer[i, :] = self.vertexTemplate
|
||||
buffer.vertex[i, ..., 1] += cy * 16
|
||||
|
||||
self.sceneNode = scenegraph.VertexNode(buffer)
|
||||
|
||||
yield
|
@ -8,6 +8,7 @@ import numpy
|
||||
from mcedit2.rendering.modelmesh import BlockModelMesh
|
||||
|
||||
from mcedit2.rendering import layers
|
||||
from mcedit2.rendering.chunkmeshes.chunksections import ChunkSectionsRenderer
|
||||
from mcedit2.rendering.chunkmeshes.entitymesh import TileEntityMesh, MonsterRenderer, ItemRenderer
|
||||
from mcedit2.rendering.chunkmeshes.lowdetail import LowDetailBlockMesh, OverheadBlockMesh
|
||||
from mcedit2.rendering.chunkmeshes.terrainpop import TerrainPopulatedRenderer
|
||||
@ -125,6 +126,7 @@ class ChunkUpdate(object):
|
||||
ItemRenderer,
|
||||
TileTicksRenderer,
|
||||
TerrainPopulatedRenderer,
|
||||
ChunkSectionsRenderer,
|
||||
LowDetailBlockMesh,
|
||||
OverheadBlockMesh,
|
||||
]
|
||||
|
@ -13,4 +13,5 @@ class Layer:
|
||||
TileEntities = "TileEntities"
|
||||
TileTicks = "TileTicks"
|
||||
TerrainPopulated = "TerrainPopulated"
|
||||
AllLayers = (Blocks, Entities, Items, TileEntities, TileTicks)
|
||||
ChunkSections = "ChunkSections"
|
||||
AllLayers = (Blocks, Entities, Items, TileEntities, TileTicks, ChunkSections)
|
||||
|
Reference in New Issue
Block a user