Skip to content

Commit

Permalink
Merge branch 'add_frame_number' into 'master'
Browse files Browse the repository at this point in the history
Add frame number to available postprocess uniforms

See merge request OpenMW/openmw!4355
  • Loading branch information
AnyOldName3 committed Sep 10, 2024
2 parents f3dd6d0 + b346a4a commit 0f74e0c
Show file tree
Hide file tree
Showing 4 changed files with 13 additions and 2 deletions.
2 changes: 1 addition & 1 deletion CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -83,7 +83,7 @@ set(OPENMW_VERSION_MAJOR 0)
set(OPENMW_VERSION_MINOR 49)
set(OPENMW_VERSION_RELEASE 0)
set(OPENMW_LUA_API_REVISION 68)
set(OPENMW_POSTPROCESSING_API_REVISION 1)
set(OPENMW_POSTPROCESSING_API_REVISION 2)

set(OPENMW_VERSION_COMMITHASH "")
set(OPENMW_VERSION_TAGHASH "")
Expand Down
2 changes: 2 additions & 0 deletions apps/openmw/mwrender/postprocessor.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -323,6 +323,8 @@ namespace MWRender

mStateUpdater->setSimulationTime(static_cast<float>(stamp->getSimulationTime()));
mStateUpdater->setDeltaSimulationTime(static_cast<float>(stamp->getSimulationTime() - mLastSimulationTime));
// Use a signed int because 'uint' type is not supported in GLSL 120 without extensions
mStateUpdater->setFrameNumber(static_cast<int>(stamp->getFrameNumber()));
mLastSimulationTime = stamp->getSimulationTime();

for (const auto& dispatchNode : mCanvases[frameId]->getPasses())
Expand Down
9 changes: 8 additions & 1 deletion components/fx/stateupdater.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -89,6 +89,8 @@ namespace fx

void setDeltaSimulationTime(float time) { mData.get<DeltaSimulationTime>() = time; }

void setFrameNumber(int frame) { mData.get<FrameNumber>() = frame; }

void setWindSpeed(float speed) { mData.get<WindSpeed>() = speed; }

void setWeatherTransition(float transition)
Expand Down Expand Up @@ -233,6 +235,11 @@ namespace fx
static constexpr std::string_view sName = "deltaSimulationTime";
};

struct FrameNumber : std140::Int
{
static constexpr std::string_view sName = "frameNumber";
};

struct WindSpeed : std140::Float
{
static constexpr std::string_view sName = "windSpeed";
Expand Down Expand Up @@ -267,7 +274,7 @@ namespace fx
= std140::UBO<ProjectionMatrix, InvProjectionMatrix, ViewMatrix, PrevViewMatrix, InvViewMatrix, EyePos,
EyeVec, FogColor, AmbientColor, SkyColor, SunColor, SunPos, Resolution, RcpResolution, FogNear, FogFar,
Near, Far, Fov, GameHour, SunVis, WaterHeight, IsWaterEnabled, SimulationTime, DeltaSimulationTime,
WindSpeed, WeatherTransition, WeatherID, NextWeatherID, IsUnderwater, IsInterior>;
FrameNumber, WindSpeed, WeatherTransition, WeatherID, NextWeatherID, IsUnderwater, IsInterior>;

UniformData mData;
bool mUseUBO;
Expand Down
2 changes: 2 additions & 0 deletions docs/source/reference/postprocessing/omwfx.rst
Original file line number Diff line number Diff line change
Expand Up @@ -107,6 +107,8 @@ Builtin Uniforms
+-------------+------------------------------+--------------------------------------------------+
| float | ``omw.deltaSimulationTime`` | The change in `omw.simulationTime` |
+-------------+------------------------------+--------------------------------------------------+
| int | ``omw.frameNumber`` | The current frame number |
+-------------+------------------------------+--------------------------------------------------+
| float | ``omw.windSpeed`` | The current wind speed |
+-------------+------------------------------+--------------------------------------------------+
| float | ``omw.weatherTransition`` | The transition factor between weathers [0, 1] |
Expand Down

0 comments on commit 0f74e0c

Please sign in to comment.