Add flat shading to Appearance (#258)

This commit is contained in:
Anders Jenbo 2025-06-08 22:40:14 +02:00 committed by GitHub
parent f75bec997b
commit d32c30492f
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
3 changed files with 9 additions and 2 deletions

View File

@ -333,6 +333,10 @@ void OpenGL15Renderer::SubmitDraw(
glDisable(GL_TEXTURE_2D);
}
if (appearance.flat) {
glShadeModel(GL_FLAT);
}
float shininess = appearance.shininess;
glMaterialf(GL_FRONT, GL_SHININESS, shininess);
if (shininess != 0.0f) {

View File

@ -288,6 +288,7 @@ void Direct3DRMViewportImpl::CollectMeshesFromFrame(
D3DCOLOR color = mesh->GetGroupColor(gi);
D3DRMRENDERQUALITY quality = mesh->GetGroupQuality(gi);
bool flat = quality == D3DRMRENDER_FLAT || quality == D3DRMRENDER_UNLITFLAT;
IDirect3DRMTexture* texture = nullptr;
mesh->GetGroupTexture(gi, &texture);
@ -307,7 +308,7 @@ void Direct3DRMViewportImpl::CollectMeshesFromFrame(
for (DWORD fi = 0; fi < faceCount; ++fi) {
D3DVECTOR norm;
if (quality == D3DRMRENDER_FLAT || quality == D3DRMRENDER_UNLITFLAT) {
if (flat) {
D3DRMVERTEX& v0 = d3dVerts[faces[fi * vpf + 0]];
D3DRMVERTEX& v1 = d3dVerts[faces[fi * vpf + 1]];
D3DRMVERTEX& v2 = d3dVerts[faces[fi * vpf + 2]];
@ -334,7 +335,8 @@ void Direct3DRMViewportImpl::CollectMeshesFromFrame(
static_cast<Uint8>((color >> 0) & 0xFF),
static_cast<Uint8>((color >> 24) & 0xFF)},
shininess,
textureId}
textureId,
flat}
);
}
mesh->Release();

View File

@ -22,6 +22,7 @@ struct Appearance {
SDL_Color color;
float shininess;
Uint32 textureId;
bool flat;
};
struct FColor {