mirror of
https://github.com/overte-org/overte.git
synced 2025-04-20 04:44:11 +02:00
Finalizing the renaming from Skinned to Deformed
This commit is contained in:
parent
09dae5aee3
commit
b5a47b2e76
7 changed files with 77 additions and 90 deletions
|
@ -315,7 +315,7 @@ static QTimer pingTimer;
|
|||
static bool DISABLE_WATCHDOG = true;
|
||||
#else
|
||||
static const QString DISABLE_WATCHDOG_FLAG{ "HIFI_DISABLE_WATCHDOG" };
|
||||
static bool DISABLE_WATCHDOG = true || nsightActive() || QProcessEnvironment::systemEnvironment().contains(DISABLE_WATCHDOG_FLAG);
|
||||
static bool DISABLE_WATCHDOG = nsightActive() || QProcessEnvironment::systemEnvironment().contains(DISABLE_WATCHDOG_FLAG);
|
||||
#endif
|
||||
|
||||
#if defined(USE_GLES)
|
||||
|
|
|
@ -20,15 +20,11 @@ using namespace gpu;
|
|||
Material::Material() :
|
||||
_key(0),
|
||||
_schemaBuffer(),
|
||||
// _texMapArrayBuffer(),
|
||||
_textureMaps()
|
||||
{
|
||||
// created from nothing: create the Buffer to store the properties
|
||||
Schema schema;
|
||||
_schemaBuffer = gpu::BufferView(std::make_shared<gpu::Buffer>(sizeof(Schema), (const gpu::Byte*) &schema));
|
||||
|
||||
// TexMapArraySchema TexMapArraySchema;
|
||||
// _texMapArrayBuffer = gpu::BufferView(std::make_shared<gpu::Buffer>(sizeof(TexMapArraySchema), (const gpu::Byte*) &TexMapArraySchema));
|
||||
}
|
||||
|
||||
Material::Material(const Material& material) :
|
||||
|
@ -40,10 +36,6 @@ Material::Material(const Material& material) :
|
|||
Schema schema;
|
||||
_schemaBuffer = gpu::BufferView(std::make_shared<gpu::Buffer>(sizeof(Schema), (const gpu::Byte*) &schema));
|
||||
_schemaBuffer.edit<Schema>() = material._schemaBuffer.get<Schema>();
|
||||
|
||||
// TexMapArraySchema texMapArraySchema;
|
||||
// _texMapArrayBuffer = gpu::BufferView(std::make_shared<gpu::Buffer>(sizeof(TexMapArraySchema), (const gpu::Byte*) &texMapArraySchema));
|
||||
// _texMapArrayBuffer.edit<TexMapArraySchema>() = material._texMapArrayBuffer.get<TexMapArraySchema>();
|
||||
}
|
||||
|
||||
Material& Material::operator= (const Material& material) {
|
||||
|
@ -60,10 +52,6 @@ Material& Material::operator= (const Material& material) {
|
|||
_schemaBuffer = gpu::BufferView(std::make_shared<gpu::Buffer>(sizeof(Schema), (const gpu::Byte*) &schema));
|
||||
_schemaBuffer.edit<Schema>() = material._schemaBuffer.get<Schema>();
|
||||
|
||||
// TexMapArraySchema texMapArraySchema;
|
||||
// _texMapArrayBuffer = gpu::BufferView(std::make_shared<gpu::Buffer>(sizeof(TexMapArraySchema), (const gpu::Byte*) &texMapArraySchema));
|
||||
// _texMapArrayBuffer.edit<TexMapArraySchema>() = material._texMapArrayBuffer.get<TexMapArraySchema>();
|
||||
|
||||
return (*this);
|
||||
}
|
||||
|
||||
|
|
|
@ -181,8 +181,8 @@ void DrawHighlightMask::run(const render::RenderContextPointer& renderContext, c
|
|||
args->_batch = &batch;
|
||||
|
||||
auto maskPipeline = _shapePlumber->pickPipeline(args, defaultKeyBuilder);
|
||||
auto maskSkinnedPipeline = _shapePlumber->pickPipeline(args, defaultKeyBuilder.withSkinned());
|
||||
auto maskSkinnedDQPipeline = _shapePlumber->pickPipeline(args, defaultKeyBuilder.withSkinned().withDualQuatSkinned());
|
||||
auto maskDeformedPipeline = _shapePlumber->pickPipeline(args, defaultKeyBuilder.withDeformed());
|
||||
auto maskDeformedDQPipeline = _shapePlumber->pickPipeline(args, defaultKeyBuilder.withDeformed().withDualQuatSkinned());
|
||||
|
||||
// Setup camera, projection and viewport for all items
|
||||
batch.setViewportTransform(args->_viewport);
|
||||
|
@ -190,37 +190,37 @@ void DrawHighlightMask::run(const render::RenderContextPointer& renderContext, c
|
|||
batch.setProjectionJitter(jitter.x, jitter.y);
|
||||
batch.setViewTransform(viewMat);
|
||||
|
||||
std::vector<ShapeKey> skinnedShapeKeys;
|
||||
std::vector<ShapeKey> skinnedDQShapeKeys;
|
||||
std::vector<ShapeKey> deformedShapeKeys;
|
||||
std::vector<ShapeKey> deformedDQShapeKeys;
|
||||
|
||||
// Iterate through all inShapes and render the unskinned
|
||||
args->_shapePipeline = maskPipeline;
|
||||
batch.setPipeline(maskPipeline->pipeline);
|
||||
for (const auto& items : inShapes) {
|
||||
itemBounds.insert(itemBounds.end(), items.second.begin(), items.second.end());
|
||||
if (items.first.isSkinned() && items.first.isDualQuatSkinned()) {
|
||||
skinnedDQShapeKeys.push_back(items.first);
|
||||
} else if (items.first.isSkinned()) {
|
||||
skinnedShapeKeys.push_back(items.first);
|
||||
if (items.first.isDeformed() && items.first.isDualQuatSkinned()) {
|
||||
deformedDQShapeKeys.push_back(items.first);
|
||||
} else if (items.first.isDeformed()) {
|
||||
deformedShapeKeys.push_back(items.first);
|
||||
} else {
|
||||
renderItems(renderContext, items.second);
|
||||
}
|
||||
}
|
||||
|
||||
// Reiterate to render the skinned
|
||||
if (skinnedShapeKeys.size() > 0) {
|
||||
args->_shapePipeline = maskSkinnedPipeline;
|
||||
batch.setPipeline(maskSkinnedPipeline->pipeline);
|
||||
for (const auto& key : skinnedShapeKeys) {
|
||||
if (deformedShapeKeys.size() > 0) {
|
||||
args->_shapePipeline = maskDeformedPipeline;
|
||||
batch.setPipeline(maskDeformedPipeline->pipeline);
|
||||
for (const auto& key : deformedShapeKeys) {
|
||||
renderItems(renderContext, inShapes.at(key));
|
||||
}
|
||||
}
|
||||
|
||||
// Reiterate to render the DQ skinned
|
||||
if (skinnedDQShapeKeys.size() > 0) {
|
||||
args->_shapePipeline = maskSkinnedDQPipeline;
|
||||
batch.setPipeline(maskSkinnedDQPipeline->pipeline);
|
||||
for (const auto& key : skinnedDQShapeKeys) {
|
||||
if (deformedDQShapeKeys.size() > 0) {
|
||||
args->_shapePipeline = maskDeformedDQPipeline;
|
||||
batch.setPipeline(maskDeformedDQPipeline->pipeline);
|
||||
for (const auto& key : deformedDQShapeKeys) {
|
||||
renderItems(renderContext, inShapes.at(key));
|
||||
}
|
||||
}
|
||||
|
|
|
@ -352,10 +352,10 @@ void ModelMeshPartPayload::setShapeKey(bool invalidateShapeKey, bool isWireframe
|
|||
bool hasLightmap = drawMaterialKey.isLightmapMap();
|
||||
bool isUnlit = drawMaterialKey.isUnlit();
|
||||
|
||||
bool isSkinned = _isBlendShaped || _isSkinned;
|
||||
bool isDeformed = _isBlendShaped || _isSkinned;
|
||||
|
||||
if (isWireframe) {
|
||||
isTranslucent = hasTangents = hasLightmap = isSkinned = false;
|
||||
isTranslucent = hasTangents = hasLightmap = isDeformed = false;
|
||||
}
|
||||
|
||||
ShapeKey::Builder builder;
|
||||
|
@ -373,13 +373,13 @@ void ModelMeshPartPayload::setShapeKey(bool invalidateShapeKey, bool isWireframe
|
|||
if (isUnlit) {
|
||||
builder.withUnlit();
|
||||
}
|
||||
if (isSkinned) {
|
||||
builder.withSkinned();
|
||||
if (isDeformed) {
|
||||
builder.withDeformed();
|
||||
}
|
||||
if (isWireframe) {
|
||||
builder.withWireframe();
|
||||
}
|
||||
if (isSkinned && useDualQuaternionSkinning) {
|
||||
if (isDeformed && useDualQuaternionSkinning) {
|
||||
builder.withDualQuatSkinned();
|
||||
}
|
||||
|
||||
|
|
|
@ -146,60 +146,60 @@ void initDeferredPipelines(render::ShapePlumber& plumber, const render::ShapePip
|
|||
|
||||
// matrix palette skinned
|
||||
addPipeline(
|
||||
Key::Builder().withMaterial().withSkinned(),
|
||||
Key::Builder().withMaterial().withDeformed(),
|
||||
deformed_model, nullptr, nullptr);
|
||||
addPipeline(
|
||||
Key::Builder().withMaterial().withSkinned().withTangents(),
|
||||
Key::Builder().withMaterial().withDeformed().withTangents(),
|
||||
deformed_model_normal_map, nullptr, nullptr);
|
||||
// Same thing but with Fade on
|
||||
addPipeline(
|
||||
Key::Builder().withMaterial().withSkinned().withFade(),
|
||||
Key::Builder().withMaterial().withDeformed().withFade(),
|
||||
deformed_model_fade, batchSetter, itemSetter);
|
||||
addPipeline(
|
||||
Key::Builder().withMaterial().withSkinned().withTangents().withFade(),
|
||||
Key::Builder().withMaterial().withDeformed().withTangents().withFade(),
|
||||
deformed_model_normal_map_fade, batchSetter, itemSetter);
|
||||
// matrix palette skinned and translucent
|
||||
addPipeline(
|
||||
Key::Builder().withMaterial().withSkinned().withTranslucent(),
|
||||
Key::Builder().withMaterial().withDeformed().withTranslucent(),
|
||||
deformed_model_translucent, nullptr, nullptr);
|
||||
addPipeline(
|
||||
Key::Builder().withMaterial().withSkinned().withTranslucent().withTangents(),
|
||||
Key::Builder().withMaterial().withDeformed().withTranslucent().withTangents(),
|
||||
deformed_model_normal_map_translucent, nullptr, nullptr);
|
||||
// Same thing but with Fade on
|
||||
addPipeline(
|
||||
Key::Builder().withMaterial().withSkinned().withTranslucent().withFade(),
|
||||
Key::Builder().withMaterial().withDeformed().withTranslucent().withFade(),
|
||||
deformed_model_translucent_fade, batchSetter, itemSetter);
|
||||
addPipeline(
|
||||
Key::Builder().withMaterial().withSkinned().withTranslucent().withTangents().withFade(),
|
||||
Key::Builder().withMaterial().withDeformed().withTranslucent().withTangents().withFade(),
|
||||
deformed_model_normal_map_translucent_fade, batchSetter, itemSetter);
|
||||
|
||||
// dual quaternion skinned
|
||||
addPipeline(
|
||||
Key::Builder().withMaterial().withSkinned().withDualQuatSkinned(),
|
||||
Key::Builder().withMaterial().withDeformed().withDualQuatSkinned(),
|
||||
deformed_model_dq, nullptr, nullptr);
|
||||
addPipeline(
|
||||
Key::Builder().withMaterial().withSkinned().withDualQuatSkinned().withTangents(),
|
||||
Key::Builder().withMaterial().withDeformed().withDualQuatSkinned().withTangents(),
|
||||
deformed_model_normal_map_dq, nullptr, nullptr);
|
||||
// Same thing but with Fade on
|
||||
addPipeline(
|
||||
Key::Builder().withMaterial().withSkinned().withDualQuatSkinned().withFade(),
|
||||
Key::Builder().withMaterial().withDeformed().withDualQuatSkinned().withFade(),
|
||||
deformed_model_fade_dq, batchSetter, itemSetter);
|
||||
addPipeline(
|
||||
Key::Builder().withMaterial().withSkinned().withDualQuatSkinned().withTangents().withFade(),
|
||||
Key::Builder().withMaterial().withDeformed().withDualQuatSkinned().withTangents().withFade(),
|
||||
deformed_model_normal_map_fade_dq, batchSetter, itemSetter);
|
||||
// dual quaternion skinned and translucent
|
||||
addPipeline(
|
||||
Key::Builder().withMaterial().withSkinned().withDualQuatSkinned().withTranslucent(),
|
||||
Key::Builder().withMaterial().withDeformed().withDualQuatSkinned().withTranslucent(),
|
||||
deformed_model_translucent_dq, nullptr, nullptr);
|
||||
addPipeline(
|
||||
Key::Builder().withMaterial().withSkinned().withDualQuatSkinned().withTranslucent().withTangents(),
|
||||
Key::Builder().withMaterial().withDeformed().withDualQuatSkinned().withTranslucent().withTangents(),
|
||||
deformed_model_normal_map_translucent_dq, nullptr, nullptr);
|
||||
// Same thing but with Fade on
|
||||
addPipeline(
|
||||
Key::Builder().withMaterial().withSkinned().withDualQuatSkinned().withTranslucent().withFade(),
|
||||
Key::Builder().withMaterial().withDeformed().withDualQuatSkinned().withTranslucent().withFade(),
|
||||
deformed_model_translucent_fade_dq, batchSetter, itemSetter);
|
||||
addPipeline(
|
||||
Key::Builder().withMaterial().withSkinned().withDualQuatSkinned().withTranslucent().withTangents().withFade(),
|
||||
Key::Builder().withMaterial().withDeformed().withDualQuatSkinned().withTranslucent().withTangents().withFade(),
|
||||
deformed_model_normal_map_translucent_fade_dq, batchSetter, itemSetter);
|
||||
|
||||
// Depth-only
|
||||
|
@ -207,24 +207,24 @@ void initDeferredPipelines(render::ShapePlumber& plumber, const render::ShapePip
|
|||
Key::Builder().withDepthOnly(),
|
||||
model_shadow, nullptr, nullptr);
|
||||
addPipeline(
|
||||
Key::Builder().withSkinned().withDepthOnly(),
|
||||
Key::Builder().withDeformed().withDepthOnly(),
|
||||
deformed_model_shadow, nullptr, nullptr);
|
||||
// Same thing but with Fade on
|
||||
addPipeline(
|
||||
Key::Builder().withDepthOnly().withFade(),
|
||||
model_shadow_fade, batchSetter, itemSetter);
|
||||
addPipeline(
|
||||
Key::Builder().withSkinned().withDepthOnly().withFade(),
|
||||
Key::Builder().withDeformed().withDepthOnly().withFade(),
|
||||
deformed_model_shadow_fade, batchSetter, itemSetter);
|
||||
|
||||
// Now repeat for dual quaternion
|
||||
// Depth-only
|
||||
addPipeline(
|
||||
Key::Builder().withSkinned().withDualQuatSkinned().withDepthOnly(),
|
||||
Key::Builder().withDeformed().withDualQuatSkinned().withDepthOnly(),
|
||||
deformed_model_shadow_dq, nullptr, nullptr);
|
||||
// Same thing but with Fade on
|
||||
addPipeline(
|
||||
Key::Builder().withSkinned().withDualQuatSkinned().withDepthOnly().withFade(),
|
||||
Key::Builder().withDeformed().withDualQuatSkinned().withDepthOnly().withFade(),
|
||||
deformed_model_shadow_fade_dq, batchSetter, itemSetter);
|
||||
}
|
||||
|
||||
|
@ -256,21 +256,21 @@ void initForwardPipelines(ShapePlumber& plumber) {
|
|||
addPipeline(Key::Builder().withMaterial().withUnlit(), forward_model_unlit);
|
||||
addPipeline(Key::Builder().withMaterial().withTangents(), forward_model_translucent);
|
||||
|
||||
// Skinned Opaques
|
||||
addPipeline(Key::Builder().withMaterial().withSkinned(), forward_deformed_model);
|
||||
addPipeline(Key::Builder().withMaterial().withSkinned().withTangents(), forward_deformed_model_normal_map);
|
||||
addPipeline(Key::Builder().withMaterial().withSkinned().withDualQuatSkinned(), forward_deformed_model_dq);
|
||||
addPipeline(Key::Builder().withMaterial().withSkinned().withTangents().withDualQuatSkinned(), forward_deformed_model_normal_map_dq);
|
||||
// Deformed Opaques
|
||||
addPipeline(Key::Builder().withMaterial().withDeformed(), forward_deformed_model);
|
||||
addPipeline(Key::Builder().withMaterial().withDeformed().withTangents(), forward_deformed_model_normal_map);
|
||||
addPipeline(Key::Builder().withMaterial().withDeformed().withDualQuatSkinned(), forward_deformed_model_dq);
|
||||
addPipeline(Key::Builder().withMaterial().withDeformed().withTangents().withDualQuatSkinned(), forward_deformed_model_normal_map_dq);
|
||||
|
||||
// Translucents
|
||||
addPipeline(Key::Builder().withMaterial().withTranslucent(), forward_model_translucent);
|
||||
addPipeline(Key::Builder().withMaterial().withTranslucent().withTangents(), forward_model_normal_map_translucent);
|
||||
|
||||
// Skinned Translucents
|
||||
addPipeline(Key::Builder().withMaterial().withSkinned().withTranslucent(), forward_deformed_translucent);
|
||||
addPipeline(Key::Builder().withMaterial().withSkinned().withTranslucent().withTangents(), forward_deformed_translucent_normal_map);
|
||||
addPipeline(Key::Builder().withMaterial().withSkinned().withTranslucent().withDualQuatSkinned(), forward_deformed_translucent_dq);
|
||||
addPipeline(Key::Builder().withMaterial().withSkinned().withTranslucent().withTangents().withDualQuatSkinned(), forward_deformed_translucent_normal_map_dq);
|
||||
// Deformed Translucents
|
||||
addPipeline(Key::Builder().withMaterial().withDeformed().withTranslucent(), forward_deformed_translucent);
|
||||
addPipeline(Key::Builder().withMaterial().withDeformed().withTranslucent().withTangents(), forward_deformed_translucent_normal_map);
|
||||
addPipeline(Key::Builder().withMaterial().withDeformed().withTranslucent().withDualQuatSkinned(), forward_deformed_translucent_dq);
|
||||
addPipeline(Key::Builder().withMaterial().withDeformed().withTranslucent().withTangents().withDualQuatSkinned(), forward_deformed_translucent_normal_map_dq);
|
||||
|
||||
forceLightBatchSetter = false;
|
||||
}
|
||||
|
@ -366,32 +366,32 @@ void initZPassPipelines(ShapePlumber& shapePlumber, gpu::StatePointer state) {
|
|||
using namespace shader::render_utils::program;
|
||||
gpu::ShaderPointer modelProgram = gpu::Shader::createProgram(model_shadow);
|
||||
shapePlumber.addPipeline(
|
||||
ShapeKey::Filter::Builder().withoutSkinned().withoutFade(),
|
||||
ShapeKey::Filter::Builder().withoutDeformed().withoutFade(),
|
||||
modelProgram, state);
|
||||
|
||||
gpu::ShaderPointer skinProgram = gpu::Shader::createProgram(deformed_model_shadow);
|
||||
shapePlumber.addPipeline(
|
||||
ShapeKey::Filter::Builder().withSkinned().withoutDualQuatSkinned().withoutFade(),
|
||||
ShapeKey::Filter::Builder().withDeformed().withoutDualQuatSkinned().withoutFade(),
|
||||
skinProgram, state);
|
||||
|
||||
gpu::ShaderPointer modelFadeProgram = gpu::Shader::createProgram(model_shadow_fade);
|
||||
shapePlumber.addPipeline(
|
||||
ShapeKey::Filter::Builder().withoutSkinned().withFade(),
|
||||
ShapeKey::Filter::Builder().withoutDeformed().withFade(),
|
||||
modelFadeProgram, state);
|
||||
|
||||
gpu::ShaderPointer skinFadeProgram = gpu::Shader::createProgram(deformed_model_shadow_fade);
|
||||
shapePlumber.addPipeline(
|
||||
ShapeKey::Filter::Builder().withSkinned().withoutDualQuatSkinned().withFade(),
|
||||
ShapeKey::Filter::Builder().withDeformed().withoutDualQuatSkinned().withFade(),
|
||||
skinFadeProgram, state);
|
||||
|
||||
gpu::ShaderPointer skinModelShadowDualQuatProgram = gpu::Shader::createProgram(deformed_model_shadow_dq);
|
||||
shapePlumber.addPipeline(
|
||||
ShapeKey::Filter::Builder().withSkinned().withDualQuatSkinned().withoutFade(),
|
||||
ShapeKey::Filter::Builder().withDeformed().withDualQuatSkinned().withoutFade(),
|
||||
skinModelShadowDualQuatProgram, state);
|
||||
|
||||
gpu::ShaderPointer skinModelShadowFadeDualQuatProgram = gpu::Shader::createProgram(deformed_model_shadow_fade_dq);
|
||||
shapePlumber.addPipeline(
|
||||
ShapeKey::Filter::Builder().withSkinned().withDualQuatSkinned().withFade(),
|
||||
ShapeKey::Filter::Builder().withDeformed().withDualQuatSkinned().withFade(),
|
||||
skinModelShadowFadeDualQuatProgram, state);
|
||||
}
|
||||
|
||||
|
@ -404,7 +404,6 @@ void RenderPipelines::bindMaterial(const graphics::MaterialPointer& material, gp
|
|||
auto textureCache = DependencyManager::get<TextureCache>();
|
||||
|
||||
batch.setUniformBuffer(gr::Buffer::Material, material->getSchemaBuffer());
|
||||
// batch.setUniformBuffer(gr::Buffer::TexMapArray, material->getTexMapArrayBuffer());
|
||||
|
||||
const auto& materialKey = material->getKey();
|
||||
const auto& textureMaps = material->getTextureMaps();
|
||||
|
|
|
@ -249,22 +249,22 @@ void RenderShadowMap::run(const render::RenderContextPointer& renderContext, con
|
|||
batch.setViewTransform(viewMat, false);
|
||||
|
||||
auto shadowPipeline = _shapePlumber->pickPipeline(args, defaultKeyBuilder);
|
||||
auto shadowSkinnedPipeline = _shapePlumber->pickPipeline(args, defaultKeyBuilder.withSkinned());
|
||||
auto shadowSkinnedDQPipeline = _shapePlumber->pickPipeline(args, defaultKeyBuilder.withSkinned().withDualQuatSkinned());
|
||||
auto shadowDeformedPipeline = _shapePlumber->pickPipeline(args, defaultKeyBuilder.withDeformed());
|
||||
auto shadowDeformedDQPipeline = _shapePlumber->pickPipeline(args, defaultKeyBuilder.withDeformed().withDualQuatSkinned());
|
||||
|
||||
std::vector<ShapeKey> skinnedShapeKeys{};
|
||||
std::vector<ShapeKey> skinnedDQShapeKeys{};
|
||||
std::vector<ShapeKey> deformedShapeKeys{};
|
||||
std::vector<ShapeKey> deformedDQShapeKeys{};
|
||||
std::vector<ShapeKey> ownPipelineShapeKeys{};
|
||||
|
||||
// Iterate through all inShapes and render the unskinned
|
||||
args->_shapePipeline = shadowPipeline;
|
||||
batch.setPipeline(shadowPipeline->pipeline);
|
||||
for (auto items : inShapes) {
|
||||
if (items.first.isSkinned()) {
|
||||
if (items.first.isDeformed()) {
|
||||
if (items.first.isDualQuatSkinned()) {
|
||||
skinnedDQShapeKeys.push_back(items.first);
|
||||
deformedDQShapeKeys.push_back(items.first);
|
||||
} else {
|
||||
skinnedShapeKeys.push_back(items.first);
|
||||
deformedShapeKeys.push_back(items.first);
|
||||
}
|
||||
} else if (!items.first.hasOwnPipeline()) {
|
||||
renderItems(renderContext, items.second);
|
||||
|
@ -274,16 +274,16 @@ void RenderShadowMap::run(const render::RenderContextPointer& renderContext, con
|
|||
}
|
||||
|
||||
// Reiterate to render the skinned
|
||||
args->_shapePipeline = shadowSkinnedPipeline;
|
||||
batch.setPipeline(shadowSkinnedPipeline->pipeline);
|
||||
for (const auto& key : skinnedShapeKeys) {
|
||||
args->_shapePipeline = shadowDeformedPipeline;
|
||||
batch.setPipeline(shadowDeformedPipeline->pipeline);
|
||||
for (const auto& key : deformedShapeKeys) {
|
||||
renderItems(renderContext, inShapes.at(key));
|
||||
}
|
||||
|
||||
// Reiterate to render the DQ skinned
|
||||
args->_shapePipeline = shadowSkinnedDQPipeline;
|
||||
batch.setPipeline(shadowSkinnedDQPipeline->pipeline);
|
||||
for (const auto& key : skinnedDQShapeKeys) {
|
||||
args->_shapePipeline = shadowDeformedDQPipeline;
|
||||
batch.setPipeline(shadowDeformedDQPipeline->pipeline);
|
||||
for (const auto& key : deformedDQShapeKeys) {
|
||||
renderItems(renderContext, inShapes.at(key));
|
||||
}
|
||||
|
||||
|
|
|
@ -30,7 +30,7 @@ public:
|
|||
LIGHTMAP,
|
||||
TANGENTS,
|
||||
UNLIT,
|
||||
SKINNED,
|
||||
DEFORMED,
|
||||
DUAL_QUAT_SKINNED,
|
||||
DEPTH_ONLY,
|
||||
DEPTH_BIAS,
|
||||
|
@ -78,7 +78,7 @@ public:
|
|||
Builder& withLightmap() { _flags.set(LIGHTMAP); return (*this); }
|
||||
Builder& withTangents() { _flags.set(TANGENTS); return (*this); }
|
||||
Builder& withUnlit() { _flags.set(UNLIT); return (*this); }
|
||||
Builder& withSkinned() { _flags.set(SKINNED); return (*this); }
|
||||
Builder& withDeformed() { _flags.set(DEFORMED); return (*this); }
|
||||
Builder& withDualQuatSkinned() { _flags.set(DUAL_QUAT_SKINNED); return (*this); }
|
||||
Builder& withDepthOnly() { _flags.set(DEPTH_ONLY); return (*this); }
|
||||
Builder& withDepthBias() { _flags.set(DEPTH_BIAS); return (*this); }
|
||||
|
@ -127,8 +127,8 @@ public:
|
|||
Builder& withUnlit() { _flags.set(UNLIT); _mask.set(UNLIT); return (*this); }
|
||||
Builder& withoutUnlit() { _flags.reset(UNLIT); _mask.set(UNLIT); return (*this); }
|
||||
|
||||
Builder& withSkinned() { _flags.set(SKINNED); _mask.set(SKINNED); return (*this); }
|
||||
Builder& withoutSkinned() { _flags.reset(SKINNED); _mask.set(SKINNED); return (*this); }
|
||||
Builder& withDeformed() { _flags.set(DEFORMED); _mask.set(DEFORMED); return (*this); }
|
||||
Builder& withoutDeformed() { _flags.reset(DEFORMED); _mask.set(DEFORMED); return (*this); }
|
||||
|
||||
Builder& withDualQuatSkinned() { _flags.set(DUAL_QUAT_SKINNED); _mask.set(DUAL_QUAT_SKINNED); return (*this); }
|
||||
Builder& withoutDualQuatSkinned() { _flags.reset(DUAL_QUAT_SKINNED); _mask.set(DUAL_QUAT_SKINNED); return (*this); }
|
||||
|
@ -169,7 +169,7 @@ public:
|
|||
bool hasTangents() const { return _flags[TANGENTS]; }
|
||||
bool isUnlit() const { return _flags[UNLIT]; }
|
||||
bool isTranslucent() const { return _flags[TRANSLUCENT]; }
|
||||
bool isSkinned() const { return _flags[SKINNED]; }
|
||||
bool isDeformed() const { return _flags[DEFORMED]; }
|
||||
bool isDualQuatSkinned() const { return _flags[DUAL_QUAT_SKINNED]; }
|
||||
bool isDepthOnly() const { return _flags[DEPTH_ONLY]; }
|
||||
bool isDepthBiased() const { return _flags[DEPTH_BIAS]; }
|
||||
|
@ -209,7 +209,7 @@ inline QDebug operator<<(QDebug debug, const ShapeKey& key) {
|
|||
<< "hasTangents:" << key.hasTangents()
|
||||
<< "isUnlit:" << key.isUnlit()
|
||||
<< "isTranslucent:" << key.isTranslucent()
|
||||
<< "isSkinned:" << key.isSkinned()
|
||||
<< "isDeformed:" << key.isDeformed()
|
||||
<< "isDualQuatSkinned:" << key.isDualQuatSkinned()
|
||||
<< "isDepthOnly:" << key.isDepthOnly()
|
||||
<< "isDepthBiased:" << key.isDepthBiased()
|
||||
|
|
Loading…
Reference in a new issue