Skip to content

Commit

Permalink
Release v1.10.1
Browse files Browse the repository at this point in the history
  • Loading branch information
webermm committed Feb 29, 2024
1 parent b13687b commit 06f2bd6
Show file tree
Hide file tree
Showing 10 changed files with 10,585 additions and 4 deletions.
6 changes: 6 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,12 @@ If a copy of the MPL was not distributed with this file, You can obtain one at h
-->

## [1.10.1] Skinning Export Bugfix

### Fixes
* Include workaround fixing the export of Skin objects.


## [1.10.0] Multiedit, Shader Includes, Drag-and-drop Support, Misc Usability Improvements and Bugfixes

### Added
Expand Down
2 changes: 1 addition & 1 deletion CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ cmake_minimum_required(VERSION 3.19)

SET(CMAKE_CONFIGURATION_TYPES "Debug;RelWithDebInfo")

project(RaCoOS VERSION 1.10.0)
project(RaCoOS VERSION 1.10.1)

SET(RACO_RELEASE_DIRECTORY ${CMAKE_BINARY_DIR}/release)

Expand Down
13 changes: 12 additions & 1 deletion components/libRamsesBase/src/ramses_adaptor/SkinAdaptor.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -77,7 +77,18 @@ bool SkinAdaptor::sync(core::Errors* errors) {
(*appearance)->getEffect().findUniformInput(raco::core::SkinData::INV_BIND_MATRICES_UNIFORM_NAME, uniform);

std::string name = targetAdaptors.size() == 1 ? editorObject()->objectName() : fmt::format("{}_SkinBinding_{}", editorObject()->objectName(), index);
auto skinBinding = ramses_base::ramsesSkinBinding(&sceneAdaptor_->logicEngine(), jointBindings, data->inverseBindMatrices, appearanceBinding, uniform, name, editorObject()->objectIDAsRamsesLogicID());

// TODO workaround for the LogicEngine SkinBindingImpl::Serialize function reversing the order of the bind matrices.
// Remove this again once the LogicEngine has been fixed.
std::vector<std::array<float, 16>> matrices;
if (sceneAdaptor_->optimizeForExport()) {
std::copy(data->inverseBindMatrices.rbegin(), data->inverseBindMatrices.rend(), std::inserter(matrices, matrices.end()));
} else {
std::copy(data->inverseBindMatrices.begin(), data->inverseBindMatrices.end(), std::inserter(matrices, matrices.end()));
}

auto skinBinding = ramses_base::ramsesSkinBinding(&sceneAdaptor_->logicEngine(), jointBindings, matrices, appearanceBinding,
uniform, name, editorObject()->objectIDAsRamsesLogicID());
if (skinBinding) {
skinBindings_.emplace_back(skinBinding);
} else {
Expand Down
2 changes: 1 addition & 1 deletion doc/debugging/profiling/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -50,7 +50,7 @@ the Graphics memory section can provide a hint towards the video memory required
Most hardware vendors provide specialized tools for GPU Debugging and profiling. To list a few examples:

* [NVidia NSight](https://developer.nvidia.com/nsight-graphics)
* [Intel GPA](https://www.intel.com/content/www/us/en/developer/tools/graphics-performance-analyzers/download.html)
* [Snapdragon profiler](https://developer.qualcomm.com/software/snapdragon-profiler)
* Intel GPA

Those tools are very powerful and usually give device-specific hints about optimization potentials in your app.
2 changes: 1 addition & 1 deletion doc/debugging/versions/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ We also mention changes to the shipped library versions in the CHANGELOG file in

For a comprehensive list of the Ramses Toolchain releases (of which the Ramses Composer is a part of)
alongside upgrade hints and future plans, please refer to the
[Ramses SDK docs](https://ramses-sdk.readthedocs.io/en/latest/versions.html).
[Ramses SDK docs](https://ramses-sdk.readthedocs.io/en/latest/).

## Switching to a newer version of the Composer (Project files)

Expand Down
1 change: 1 addition & 0 deletions screenshot_tests/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -36,6 +36,7 @@ if(WIN32)
duck
morphing
skinning
skinning-rigged-figure
)

set(RACO_DOC_PROJECTS
Expand Down
3 changes: 3 additions & 0 deletions screenshot_tests/expected/skinning-rigged-figure.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
13 changes: 13 additions & 0 deletions screenshot_tests/projects/shaders/skin-rigged-figure.frag
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
#version 300 es

precision mediump float;

in float lambertian;

out vec4 FragColor;

uniform vec3 u_color;

void main() {
FragColor = vec4(lambertian * u_color.rgb, 1.0);
}
28 changes: 28 additions & 0 deletions screenshot_tests/projects/shaders/skin-rigged-figure.vert
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
#version 300 es

precision mediump float;

in vec3 a_Position;
in vec3 a_Normal;

uniform mat4 u_VMatrix;
uniform mat4 u_PMatrix;

in vec4 a_Joints0;
in vec4 a_Weights0;

uniform mat4 u_jointMat[19];

out float lambertian;

void main() {
lambertian = mix(0.4, 0.8, max(abs(dot(vec3(1.5,2.4,1.0),a_Normal)), 0.0));

mat4 skinMat =
a_Weights0.x * u_jointMat[int(a_Joints0.x)] +
a_Weights0.y * u_jointMat[int(a_Joints0.y)] +
a_Weights0.z * u_jointMat[int(a_Joints0.z)] +
a_Weights0.w * u_jointMat[int(a_Joints0.w)];

gl_Position = u_PMatrix * u_VMatrix * skinMat * vec4(a_Position, 1.0);
}
Loading

0 comments on commit 06f2bd6

Please sign in to comment.