mirror of
https://git.coom.tech/drummyfish/raycastlib.git
synced 2024-11-27 21:29:58 +01:00
Add texture height level
This commit is contained in:
parent
e2fbbd36e8
commit
74bb0ac18a
2 changed files with 13 additions and 4 deletions
11
raycastlib.h
11
raycastlib.h
|
@ -56,6 +56,14 @@
|
||||||
#define RCL_COMPUTE_FLOOR_TEXCOORDS 0
|
#define RCL_COMPUTE_FLOOR_TEXCOORDS 0
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#ifndef RCL_FLOOR_TEXCOORDS_HEIGHT
|
||||||
|
#define RCL_FLOOR_TEXCOORDS_HEIGHT 0 /** If RCL_COMPUTE_FLOOR_TEXCOORDS == 1,
|
||||||
|
this says for what height level the
|
||||||
|
texture coords will be computed for
|
||||||
|
(for simplicity/performance only one
|
||||||
|
level is allowed). */
|
||||||
|
#endif
|
||||||
|
|
||||||
#ifndef RCL_USE_COS_LUT
|
#ifndef RCL_USE_COS_LUT
|
||||||
#define RCL_USE_COS_LUT 0 /**< type of look up table for cos function:
|
#define RCL_USE_COS_LUT 0 /**< type of look up table for cos function:
|
||||||
0: none (compute)
|
0: none (compute)
|
||||||
|
@ -1325,7 +1333,8 @@ void _RCL_columnFunctionComplex(RCL_HitResult *hits, uint16_t hitCount, uint16_t
|
||||||
limit = _RCL_drawHorizontal(fPosY,fZ1Screen,cPosY + 1,
|
limit = _RCL_drawHorizontal(fPosY,fZ1Screen,cPosY + 1,
|
||||||
_RCL_camera.resolution.y,fZ1World,-1,RCL_COMPUTE_FLOOR_DEPTH,
|
_RCL_camera.resolution.y,fZ1World,-1,RCL_COMPUTE_FLOOR_DEPTH,
|
||||||
// ^ purposfully allow outside screen bounds
|
// ^ purposfully allow outside screen bounds
|
||||||
RCL_COMPUTE_FLOOR_TEXCOORDS,1,&ray,&p);
|
RCL_COMPUTE_FLOOR_TEXCOORDS && p.height == RCL_FLOOR_TEXCOORDS_HEIGHT,
|
||||||
|
1,&ray,&p);
|
||||||
|
|
||||||
if (fPosY > limit)
|
if (fPosY > limit)
|
||||||
fPosY = limit;
|
fPosY = limit;
|
||||||
|
|
|
@ -874,10 +874,10 @@ void pixelFunc(RCL_PixelInfo *pixel)
|
||||||
if (pixel->isWall)
|
if (pixel->isWall)
|
||||||
c = sampleImage(textures[pixel->hit.type],pixel->texCoords.x,pixel->texCoords.y);
|
c = sampleImage(textures[pixel->hit.type],pixel->texCoords.x,pixel->texCoords.y);
|
||||||
else
|
else
|
||||||
c = sampleImage(textures[0],pixel->texCoords.x,pixel->texCoords.y); //pixel->isFloor ? 0b00010001 : 0b00001010;
|
c = pixel->height == RCL_FLOOR_TEXCOORDS_HEIGHT ?
|
||||||
|
sampleImage(textures[0],pixel->texCoords.x,pixel->texCoords.y) : 0b00010001;
|
||||||
|
|
||||||
// int intensity = pixel->depth - 8 * RCL_UNITS_PER_SQUARE;
|
int intensity = pixel->depth - 8 * RCL_UNITS_PER_SQUARE;
|
||||||
int intensity = pixel->depth - 8 * RCL_UNITS_PER_SQUARE;
|
|
||||||
intensity = intensity < 0 ? 0 : intensity;
|
intensity = intensity < 0 ? 0 : intensity;
|
||||||
intensity = (intensity * 32) / RCL_UNITS_PER_SQUARE;
|
intensity = (intensity * 32) / RCL_UNITS_PER_SQUARE;
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue