From f6ce668aef51ab10ef8488120ff764c90743b185 Mon Sep 17 00:00:00 2001 From: "Daniele Verducci (Slimpenguin)" Date: Fri, 6 Jan 2023 11:08:06 +0100 Subject: [PATCH] Single monochrome texture working --- v2/raycaster.py | 26 ++++++++++++++++---------- 1 file changed, 16 insertions(+), 10 deletions(-) diff --git a/v2/raycaster.py b/v2/raycaster.py index 8bf3079..dc9eb0d 100755 --- a/v2/raycaster.py +++ b/v2/raycaster.py @@ -44,12 +44,16 @@ MAP_SIZE = 16 DOF = 2*MAP_SIZE # Depth Of Field TEXTURE = [ - 1, 0, 1, 0, - 0, 1, 0, 1, - 1, 0, 1, 0, - 0, 1, 0, 1, + 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 0, 0, 0, 0, 0, 1, + 1, 0, 1, 0, 0, 0, 0, 1, + 1, 0, 0, 1, 0, 0, 0, 1, + 1, 0, 0, 0, 1, 0, 0, 1, + 1, 0, 0, 0, 0, 1, 0, 1, + 1, 0, 0, 0, 0, 0, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, ] -TEXTURE_SIZE = 4 +TEXTURE_SIZE = 8 class Main: @@ -291,13 +295,15 @@ class Main: textureSegmentLength = lineHeight / TEXTURE_SIZE textureSegmentStart = lineOffset + textureColumnPixel * textureSegmentLength textureSegmentEnd = textureSegmentStart + textureSegmentLength - # Obtain texture value in the pixel representing the current segment - texColumn = 1 - texel = TEXTURE[texColumn + textureColumnPixel * TEXTURE_SIZE] - # Calculate shading - shading = 255 + # Obtain texture value in the pixel representing the current segment and calculate shading if vertDist > horizDist: + texColumn = int(rayX / (MAP_SCALE / TEXTURE_SIZE) % TEXTURE_SIZE) shading = 127 + else: + texColumn = int(rayY / (MAP_SCALE / TEXTURE_SIZE) % TEXTURE_SIZE) + shading = 255 + + texel = TEXTURE[texColumn + textureColumnPixel * TEXTURE_SIZE] # Calculate color resulting from texture pixel value + shading color = sdl2.ext.Color(texel*shading,texel*shading,texel*shading,255) # Clipping