Fix some render issues
This commit is contained in:
parent
6e5c516084
commit
121ca8a2f2
2
Makefile
2
Makefile
|
@ -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/assets/models/player/chell.h: assets/materials/chell.skm.yaml
|
||||
|
||||
build/anims.ld: $(ANIM_LIST) tools/generate_animation_ld.js
|
||||
@mkdir -p $(@D)
|
||||
node tools/generate_animation_ld.js $@ $(ANIM_LIST)
|
||||
|
|
|
@ -3,45 +3,61 @@ materials:
|
|||
gDPSetTile:
|
||||
filename: ./models/player/chell_face.png
|
||||
siz: G_IM_SIZ_16b
|
||||
s:
|
||||
wrap: false
|
||||
t:
|
||||
wrap: false
|
||||
|
||||
gDPSetCombineMode: G_CC_MODULATEI
|
||||
gDPSetCycleType: G_CYC_1CYCLE
|
||||
|
||||
gSPGeometryMode:
|
||||
set: [G_LIGHTING, G_SHADE]
|
||||
set: [G_LIGHTING, G_SHADE, G_CULL_BACK]
|
||||
|
||||
chell_head:
|
||||
gDPSetTile:
|
||||
filename: ./models/player/chell_head.png
|
||||
siz: G_IM_SIZ_16b
|
||||
s:
|
||||
wrap: false
|
||||
t:
|
||||
wrap: false
|
||||
|
||||
gDPSetCombineMode: G_CC_MODULATEI
|
||||
gDPSetCycleType: G_CYC_1CYCLE
|
||||
|
||||
gSPGeometryMode:
|
||||
set: [G_LIGHTING, G_SHADE]
|
||||
set: [G_LIGHTING, G_SHADE, G_CULL_BACK]
|
||||
|
||||
chell_pants:
|
||||
gDPSetTile:
|
||||
filename: ./models/player/chell_pants.png
|
||||
siz: G_IM_SIZ_16b
|
||||
s:
|
||||
wrap: false
|
||||
t:
|
||||
wrap: false
|
||||
|
||||
gDPSetCombineMode: G_CC_MODULATEI
|
||||
gDPSetCycleType: G_CYC_1CYCLE
|
||||
|
||||
gSPGeometryMode:
|
||||
set: [G_LIGHTING, G_SHADE]
|
||||
set: [G_LIGHTING, G_SHADE, G_CULL_BACK]
|
||||
|
||||
chell_shirt:
|
||||
gDPSetTile:
|
||||
filename: ./models/player/chell_shirt.png
|
||||
siz: G_IM_SIZ_16b
|
||||
s:
|
||||
wrap: false
|
||||
t:
|
||||
wrap: false
|
||||
|
||||
gDPSetCombineMode: G_CC_MODULATEI
|
||||
gDPSetCycleType: G_CYC_1CYCLE
|
||||
|
||||
gSPGeometryMode:
|
||||
set: [G_LIGHTING, G_SHADE]
|
||||
set: [G_LIGHTING, G_SHADE, G_CULL_BACK]
|
||||
|
||||
chell_neck:
|
||||
gDPSetCombineMode:
|
||||
|
@ -56,7 +72,7 @@ materials:
|
|||
a: 255
|
||||
|
||||
gSPGeometryMode:
|
||||
set: [G_LIGHTING, G_SHADE]
|
||||
set: [G_LIGHTING, G_SHADE, G_CULL_BACK]
|
||||
|
||||
chell_arm:
|
||||
gDPSetTile:
|
||||
|
@ -75,7 +91,7 @@ materials:
|
|||
a: 255
|
||||
|
||||
gSPGeometryMode:
|
||||
set: [G_LIGHTING, G_SHADE]
|
||||
set: [G_LIGHTING, G_SHADE, G_CULL_BACK]
|
||||
|
||||
chell_leg:
|
||||
gDPSetTile:
|
||||
|
@ -94,7 +110,7 @@ materials:
|
|||
a: 255
|
||||
|
||||
gSPGeometryMode:
|
||||
set: [G_LIGHTING, G_SHADE]
|
||||
set: [G_LIGHTING, G_SHADE, G_CULL_BACK]
|
||||
|
||||
chell_boots_white:
|
||||
gDPSetTile:
|
||||
|
@ -113,7 +129,7 @@ materials:
|
|||
a: 255
|
||||
|
||||
gSPGeometryMode:
|
||||
set: [G_LIGHTING, G_SHADE]
|
||||
set: [G_LIGHTING, G_SHADE, G_CULL_BACK]
|
||||
|
||||
chell_boots_black:
|
||||
gDPSetTile:
|
||||
|
@ -132,4 +148,5 @@ materials:
|
|||
a: 20
|
||||
|
||||
gSPGeometryMode:
|
||||
set: [G_LIGHTING, G_SHADE]
|
||||
set: [G_LIGHTING, G_SHADE]
|
||||
clear: [G_CULL_BACK]
|
|
@ -186,22 +186,15 @@ int renderPlanPortal(struct RenderPlan* renderPlan, struct Scene* scene, struct
|
|||
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->maxX = CALC_SCREEN_SPACE(clippingBounds.max.x, SCREEN_WD);
|
||||
next->minY = CALC_SCREEN_SPACE(-clippingBounds.max.y, SCREEN_HT);
|
||||
next->maxY = CALC_SCREEN_SPACE(-clippingBounds.min.y, SCREEN_HT);
|
||||
next->minX = CALC_SCREEN_SPACE(clippingBounds.min.x, SCREEN_WD);
|
||||
next->maxX = CALC_SCREEN_SPACE(clippingBounds.max.x, SCREEN_WD);
|
||||
next->minY = CALC_SCREEN_SPACE(-clippingBounds.max.y, SCREEN_HT);
|
||||
next->maxY = CALC_SCREEN_SPACE(-clippingBounds.min.y, SCREEN_HT);
|
||||
|
||||
next->minX = MAX(next->minX, current->minX);
|
||||
next->maxX = MIN(next->maxX, current->maxX);
|
||||
next->minY = MAX(next->minY, current->minY);
|
||||
next->maxY = MIN(next->maxY, current->maxY);
|
||||
}
|
||||
next->minX = MAX(next->minX, current->minX);
|
||||
next->maxX = MIN(next->maxX, current->maxX);
|
||||
next->minY = MAX(next->minY, current->minY);
|
||||
next->maxY = MIN(next->maxY, current->maxY);
|
||||
|
||||
struct RenderProps* prevSibling = prevSiblingPtr ? *prevSiblingPtr : NULL;
|
||||
|
||||
|
@ -398,18 +391,6 @@ void renderPlanAdjustViewportDepth(struct RenderPlan* renderPlan) {
|
|||
short minZ = zBufferBoundary[current->currentDepth + 1];
|
||||
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.vtrans[2] = (maxZ + minZ) >> 1;
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue