Add car/ghost render dist
This commit is contained in:
parent
dedd5505ec
commit
9b31556979
4 changed files with 46 additions and 14 deletions
32
renderer.h
32
renderer.h
|
@ -79,6 +79,9 @@ struct
|
|||
|
||||
uint32_t frame;
|
||||
|
||||
uint8_t carVisibilityDist;
|
||||
uint8_t ghostVisibilityDist;
|
||||
|
||||
uint8_t loadedChunks[8]; ///< numbers of loaded map chunks
|
||||
|
||||
S3L_Unit mapVerts[LCR_SETTING_MAX_MAP_VERTICES * 3];
|
||||
|
@ -1930,6 +1933,26 @@ void LCR_rendererDraw3D(void)
|
|||
|
||||
LCR_rendererDrawLOD();
|
||||
|
||||
uint8_t carGhostVisibility = 0;
|
||||
S3L_Model3D *m = LCR_renderer.carModel;
|
||||
|
||||
for (uint8_t i = 0; i < 2; ++i)
|
||||
{
|
||||
carGhostVisibility <<= 1;
|
||||
|
||||
if (LCR_renderer.carModel->config.visible)
|
||||
{
|
||||
carGhostVisibility |= 1;
|
||||
|
||||
m->config.visible = (S3L_distanceManhattan(
|
||||
m->transform.translation,
|
||||
LCR_renderer.scene.camera.transform.translation) / LCR_RENDERER_UNIT)
|
||||
<= LCR_SETTING_CAR_RENDER_DISTANCE;
|
||||
}
|
||||
|
||||
m = LCR_renderer.ghostModel;
|
||||
}
|
||||
|
||||
LCR_LOG2("3D rendering (start)");
|
||||
|
||||
#if LCR_SETTING_POTATO_GRAPHICS
|
||||
|
@ -1944,8 +1967,8 @@ void LCR_rendererDraw3D(void)
|
|||
for (int i = 0; i < LCR_renderer.scene.modelCount; ++i)
|
||||
LCR_renderer.scene.models[i].config.visible = 0;
|
||||
|
||||
LCR_renderer.carModel->config.visible = 1;
|
||||
LCR_renderer.ghostModel->config.visible = 1;
|
||||
LCR_renderer.carModel->config.visible = carGhostVisibility >> 1;
|
||||
LCR_renderer.ghostModel->config.visible = carGhostVisibility & 0x01;
|
||||
|
||||
S3L_newFrame();
|
||||
S3L_drawScene(LCR_renderer.scene);
|
||||
|
@ -1954,8 +1977,11 @@ void LCR_rendererDraw3D(void)
|
|||
LCR_renderer.scene.models[i].config.visible = 1;
|
||||
#else
|
||||
S3L_drawScene(LCR_renderer.scene);
|
||||
|
||||
LCR_renderer.carModel->config.visible = carGhostVisibility >> 1;
|
||||
LCR_renderer.ghostModel->config.visible = carGhostVisibility & 0x01;
|
||||
#endif
|
||||
|
||||
|
||||
LCR_renderer.frame++;
|
||||
|
||||
LCR_LOG2("3D rendering (end)");
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue