CVisibilityPlugins, CRenderer, some fixes

This commit is contained in:
aap
2021-07-29 19:41:38 +02:00
parent b77d93ba4a
commit 3f3e258d77
26 changed files with 657 additions and 293 deletions

View File

@@ -16,6 +16,7 @@
#include "TxdStore.h"
#include "Renderer.h"
#include "World.h"
#include "VisibilityPlugins.h"
#include "custompipes.h"
#ifndef LIBRW
@@ -464,9 +465,13 @@ worldRenderCB(rw::Atomic *atomic, rw::d3d9::InstanceDataHeader *header)
else
d3d::setTexture(0, gpWhiteTexture); // actually we don't even render this
setMaterial(m->color, m->surfaceProps, WorldPipeSwitch == WORLDPIPE_PS2 ? 0.5f : 1.0f);
rw::RGBA color = m->color;
#ifdef VIS_DISTANCE_ALPHA
color.alpha = (color.alpha * CVisibilityPlugins::GetObjectDistanceAlpha((RwObject*)atomic))/255.0f;
#endif
setMaterial(color, m->surfaceProps, WorldPipeSwitch == WORLDPIPE_PS2 ? 0.5f : 1.0f);
SetRenderState(VERTEXALPHA, inst->vertexAlpha || m->color.alpha != 255);
SetRenderState(VERTEXALPHA, inst->vertexAlpha || color.alpha != 255);
drawInst(header, inst);
inst++;

View File

@@ -15,6 +15,7 @@
#include "TxdStore.h"
#include "Renderer.h"
#include "World.h"
#include "VisibilityPlugins.h"
#include "custompipes.h"
#ifndef LIBRW
@@ -457,9 +458,13 @@ worldRenderCB(rw::Atomic *atomic, rw::gl3::InstanceDataHeader *header)
setTexture(0, m->texture);
setMaterial(m->color, m->surfaceProps, CustomPipes::WorldPipeSwitch == CustomPipes::WORLDPIPE_PS2 ? 0.5f : 1.0f);
rw::RGBA color = m->color;
#ifdef VIS_DISTANCE_ALPHA
color.alpha = (color.alpha * CVisibilityPlugins::GetObjectDistanceAlpha((RwObject*)atomic))/255.0f;
#endif
setMaterial(color, m->surfaceProps, CustomPipes::WorldPipeSwitch == CustomPipes::WORLDPIPE_PS2 ? 0.5f : 1.0f);
rw::SetRenderState(VERTEXALPHA, inst->vertexAlpha || m->color.alpha != 0xFF);
rw::SetRenderState(VERTEXALPHA, inst->vertexAlpha || color.alpha != 0xFF);
drawInst(header, inst);
inst++;