Fix some render issues

This commit is contained in:
James Lambert 2022-11-25 20:52:02 -07:00
parent 6e5c516084
commit 121ca8a2f2
3 changed files with 36 additions and 36 deletions

View file

@ -208,6 +208,8 @@ build/src/scene/portal_render.o: $(MODEL_HEADERS)
build/src/player/player.o: build/assets/models/player/chell.h build/assets/materials/static.h build/src/player/player.o: build/assets/models/player/chell.h build/assets/materials/static.h
build/assets/models/player/chell.h: assets/materials/chell.skm.yaml
build/anims.ld: $(ANIM_LIST) tools/generate_animation_ld.js build/anims.ld: $(ANIM_LIST) tools/generate_animation_ld.js
@mkdir -p $(@D) @mkdir -p $(@D)
node tools/generate_animation_ld.js $@ $(ANIM_LIST) node tools/generate_animation_ld.js $@ $(ANIM_LIST)

View file

@ -3,45 +3,61 @@ materials:
gDPSetTile: gDPSetTile:
filename: ./models/player/chell_face.png filename: ./models/player/chell_face.png
siz: G_IM_SIZ_16b siz: G_IM_SIZ_16b
s:
wrap: false
t:
wrap: false
gDPSetCombineMode: G_CC_MODULATEI gDPSetCombineMode: G_CC_MODULATEI
gDPSetCycleType: G_CYC_1CYCLE gDPSetCycleType: G_CYC_1CYCLE
gSPGeometryMode: gSPGeometryMode:
set: [G_LIGHTING, G_SHADE] set: [G_LIGHTING, G_SHADE, G_CULL_BACK]
chell_head: chell_head:
gDPSetTile: gDPSetTile:
filename: ./models/player/chell_head.png filename: ./models/player/chell_head.png
siz: G_IM_SIZ_16b siz: G_IM_SIZ_16b
s:
wrap: false
t:
wrap: false
gDPSetCombineMode: G_CC_MODULATEI gDPSetCombineMode: G_CC_MODULATEI
gDPSetCycleType: G_CYC_1CYCLE gDPSetCycleType: G_CYC_1CYCLE
gSPGeometryMode: gSPGeometryMode:
set: [G_LIGHTING, G_SHADE] set: [G_LIGHTING, G_SHADE, G_CULL_BACK]
chell_pants: chell_pants:
gDPSetTile: gDPSetTile:
filename: ./models/player/chell_pants.png filename: ./models/player/chell_pants.png
siz: G_IM_SIZ_16b siz: G_IM_SIZ_16b
s:
wrap: false
t:
wrap: false
gDPSetCombineMode: G_CC_MODULATEI gDPSetCombineMode: G_CC_MODULATEI
gDPSetCycleType: G_CYC_1CYCLE gDPSetCycleType: G_CYC_1CYCLE
gSPGeometryMode: gSPGeometryMode:
set: [G_LIGHTING, G_SHADE] set: [G_LIGHTING, G_SHADE, G_CULL_BACK]
chell_shirt: chell_shirt:
gDPSetTile: gDPSetTile:
filename: ./models/player/chell_shirt.png filename: ./models/player/chell_shirt.png
siz: G_IM_SIZ_16b siz: G_IM_SIZ_16b
s:
wrap: false
t:
wrap: false
gDPSetCombineMode: G_CC_MODULATEI gDPSetCombineMode: G_CC_MODULATEI
gDPSetCycleType: G_CYC_1CYCLE gDPSetCycleType: G_CYC_1CYCLE
gSPGeometryMode: gSPGeometryMode:
set: [G_LIGHTING, G_SHADE] set: [G_LIGHTING, G_SHADE, G_CULL_BACK]
chell_neck: chell_neck:
gDPSetCombineMode: gDPSetCombineMode:
@ -56,7 +72,7 @@ materials:
a: 255 a: 255
gSPGeometryMode: gSPGeometryMode:
set: [G_LIGHTING, G_SHADE] set: [G_LIGHTING, G_SHADE, G_CULL_BACK]
chell_arm: chell_arm:
gDPSetTile: gDPSetTile:
@ -75,7 +91,7 @@ materials:
a: 255 a: 255
gSPGeometryMode: gSPGeometryMode:
set: [G_LIGHTING, G_SHADE] set: [G_LIGHTING, G_SHADE, G_CULL_BACK]
chell_leg: chell_leg:
gDPSetTile: gDPSetTile:
@ -94,7 +110,7 @@ materials:
a: 255 a: 255
gSPGeometryMode: gSPGeometryMode:
set: [G_LIGHTING, G_SHADE] set: [G_LIGHTING, G_SHADE, G_CULL_BACK]
chell_boots_white: chell_boots_white:
gDPSetTile: gDPSetTile:
@ -113,7 +129,7 @@ materials:
a: 255 a: 255
gSPGeometryMode: gSPGeometryMode:
set: [G_LIGHTING, G_SHADE] set: [G_LIGHTING, G_SHADE, G_CULL_BACK]
chell_boots_black: chell_boots_black:
gDPSetTile: gDPSetTile:
@ -133,3 +149,4 @@ materials:
gSPGeometryMode: gSPGeometryMode:
set: [G_LIGHTING, G_SHADE] set: [G_LIGHTING, G_SHADE]
clear: [G_CULL_BACK]

View file

@ -186,12 +186,6 @@ int renderPlanPortal(struct RenderPlan* renderPlan, struct Scene* scene, struct
renderPlan->clippedPortalIndex = portalIndex; renderPlan->clippedPortalIndex = portalIndex;
} }
if (current->clippingPortalIndex == portalIndex) {
next->minX = 0;
next->maxX = SCREEN_WD;
next->minY = 0;
next->maxY = SCREEN_HT;
} else {
next->minX = CALC_SCREEN_SPACE(clippingBounds.min.x, SCREEN_WD); next->minX = CALC_SCREEN_SPACE(clippingBounds.min.x, SCREEN_WD);
next->maxX = CALC_SCREEN_SPACE(clippingBounds.max.x, SCREEN_WD); next->maxX = CALC_SCREEN_SPACE(clippingBounds.max.x, SCREEN_WD);
next->minY = CALC_SCREEN_SPACE(-clippingBounds.max.y, SCREEN_HT); next->minY = CALC_SCREEN_SPACE(-clippingBounds.max.y, SCREEN_HT);
@ -201,7 +195,6 @@ int renderPlanPortal(struct RenderPlan* renderPlan, struct Scene* scene, struct
next->maxX = MIN(next->maxX, current->maxX); next->maxX = MIN(next->maxX, current->maxX);
next->minY = MAX(next->minY, current->minY); next->minY = MAX(next->minY, current->minY);
next->maxY = MIN(next->maxY, current->maxY); next->maxY = MIN(next->maxY, current->maxY);
}
struct RenderProps* prevSibling = prevSiblingPtr ? *prevSiblingPtr : NULL; struct RenderProps* prevSibling = prevSiblingPtr ? *prevSiblingPtr : NULL;
@ -398,18 +391,6 @@ void renderPlanAdjustViewportDepth(struct RenderPlan* renderPlan) {
short minZ = zBufferBoundary[current->currentDepth + 1]; short minZ = zBufferBoundary[current->currentDepth + 1];
short maxZ = zBufferBoundary[current->currentDepth]; short maxZ = zBufferBoundary[current->currentDepth];
if (current->maxZOverlap <= -1.0f) {
maxZ = G_MAXZ;
} else {
float newZ = 0.5f * (float)maxZ / (current->maxZOverlap + 1.0f);
if (newZ >= G_MAXZ) {
maxZ = G_MAXZ;
} else {
maxZ = (short)newZ;
}
}
current->viewport->vp.vscale[2] = (maxZ - minZ) >> 1; current->viewport->vp.vscale[2] = (maxZ - minZ) >> 1;
current->viewport->vp.vtrans[2] = (maxZ + minZ) >> 1; current->viewport->vp.vtrans[2] = (maxZ + minZ) >> 1;
} }