Skip to content

Commit 921d2a9

Browse files
committed
Support for Unlit vertex colors
1 parent b697091 commit 921d2a9

5 files changed

Lines changed: 10 additions & 1 deletion

File tree

include/framework64/mesh.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99

1010
typedef enum {
1111
SHADING_MODE_UNSET,
12-
SHADING_MODE_UNLIT,
12+
SHADING_MODE_UNLIT_VERTEX_COLORS,
1313
SHADING_MODE_UNLIT_TEXTURED,
1414
SHADING_MODE_GOURAUD,
1515
SHADING_MODE_GOURAUD_TEXTURED,

src/n64/renderer.c

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -141,6 +141,8 @@ static void renderer_set_shading_mode(Renderer* renderer, ShadingMode shading_mo
141141
renderer->shading_mode = shading_mode;
142142

143143
switch(renderer->shading_mode) {
144+
case SHADING_MODE_UNLIT_TEXTURED:
145+
break;
144146
case SHADING_MODE_GOURAUD:
145147
gSPSetGeometryMode(renderer->display_list++, G_LIGHTING)
146148
gDPSetCombineMode(renderer->display_list++, G_CC_SHADE, G_CC_SHADE);

tools/asset_pipeline/GLTFLoader.js

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -213,6 +213,8 @@ class GLTFLoader {
213213

214214
offset += byteStride;
215215
}
216+
217+
n64Mesh.hasVertexColors = true;
216218
}
217219

218220
_readNormals(gltfPrimitive, n64Mesh) {

tools/asset_pipeline/N64Mesh.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,7 @@ class N64Mesh {
4343
material = 0;
4444
hasNormals = false;
4545
hasTexCoords = false;
46+
hasVertexColors = false;
4647

4748
bounding = new Bounding();
4849

tools/asset_pipeline/N64ModelWriter.js

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -291,6 +291,7 @@ class PrimitiveInfo {
291291
}
292292

293293
const ShadingMode = {
294+
UnlitVertexColors: 1,
294295
Gouraud: 3,
295296
GouraudTextured: 4
296297
}
@@ -301,6 +302,9 @@ function getShadingMode(primitive, model){
301302
if (primitive.hasNormals) {
302303
return material.texture !== N64Material.NoTexture ? ShadingMode.GouraudTextured: ShadingMode.Gouraud;
303304
}
305+
else if (primitive.hasVertexColors) {
306+
return ShadingMode.UnlitVertexColors;
307+
}
304308

305309
throw new Error(`Could not determine shading mode for mesh in model: ${model.name}`);
306310
}

0 commit comments

Comments
 (0)