Cycles Volume Render: optimization to avoid exporting surface attributes when

only a volume shader is used.
This commit is contained in:
Brecht Van Lommel
2013-12-31 17:30:34 +01:00
parent 9939ec06dd
commit 6b03f92aa7
7 changed files with 88 additions and 63 deletions

View File

@@ -66,7 +66,7 @@ public:
SHADER_NODE_NO_CLONE_CLASS(ImageTextureNode)
~ImageTextureNode();
ShaderNode *clone() const;
void attributes(AttributeRequestSet *attributes);
void attributes(Shader *shader, AttributeRequestSet *attributes);
ImageManager *image_manager;
int slot;
@@ -88,7 +88,7 @@ public:
SHADER_NODE_NO_CLONE_CLASS(EnvironmentTextureNode)
~EnvironmentTextureNode();
ShaderNode *clone() const;
void attributes(AttributeRequestSet *attributes);
void attributes(Shader *shader, AttributeRequestSet *attributes);
ImageManager *image_manager;
int slot;
@@ -217,7 +217,7 @@ public:
class WardBsdfNode : public BsdfNode {
public:
SHADER_NODE_CLASS(WardBsdfNode)
void attributes(AttributeRequestSet *attributes);
void attributes(Shader *shader, AttributeRequestSet *attributes);
};
class DiffuseBsdfNode : public BsdfNode {
@@ -338,13 +338,13 @@ public:
class GeometryNode : public ShaderNode {
public:
SHADER_NODE_CLASS(GeometryNode)
void attributes(AttributeRequestSet *attributes);
void attributes(Shader *shader, AttributeRequestSet *attributes);
};
class TextureCoordinateNode : public ShaderNode {
public:
SHADER_NODE_CLASS(TextureCoordinateNode)
void attributes(AttributeRequestSet *attributes);
void attributes(Shader *shader, AttributeRequestSet *attributes);
bool from_dupli;
};
@@ -367,14 +367,14 @@ public:
class ParticleInfoNode : public ShaderNode {
public:
SHADER_NODE_CLASS(ParticleInfoNode)
void attributes(AttributeRequestSet *attributes);
void attributes(Shader *shader, AttributeRequestSet *attributes);
};
class HairInfoNode : public ShaderNode {
public:
SHADER_NODE_CLASS(HairInfoNode)
void attributes(AttributeRequestSet *attributes);
void attributes(Shader *shader, AttributeRequestSet *attributes);
};
class ValueNode : public ShaderNode {
@@ -459,7 +459,7 @@ public:
class AttributeNode : public ShaderNode {
public:
SHADER_NODE_CLASS(AttributeNode)
void attributes(AttributeRequestSet *attributes);
void attributes(Shader *shader, AttributeRequestSet *attributes);
ustring attribute;
};
@@ -580,7 +580,7 @@ public:
class NormalMapNode : public ShaderNode {
public:
SHADER_NODE_CLASS(NormalMapNode)
void attributes(AttributeRequestSet *attributes);
void attributes(Shader *shader, AttributeRequestSet *attributes);
ustring space;
static ShaderEnum space_enum;
@@ -591,7 +591,7 @@ public:
class TangentNode : public ShaderNode {
public:
SHADER_NODE_CLASS(TangentNode)
void attributes(AttributeRequestSet *attributes);
void attributes(Shader *shader, AttributeRequestSet *attributes);
ustring direction_type;
static ShaderEnum direction_type_enum;