5 #include <assimp/scene.h>
8 #pragma make_public(aiMaterial)
9 #pragma make_public(aiTextureType)
11 using namespace SiliconStudio::Core::Mathematics;
12 using namespace SiliconStudio::Paradox::AssimpNet;
13 namespace SiliconStudio {
16 namespace NetTranslation {
25 static array<Material::Operation>^ convertAssimpStackOperationCppToCs = {
26 Material::Operation::Add,
27 Material::Operation::Add3ds,
28 Material::Operation::AddMaya,
29 Material::Operation::Average,
31 Material::Operation::ColorBurn,
32 Material::Operation::ColorDodge,
33 Material::Operation::Darken3ds,
34 Material::Operation::DarkenMaya,
35 Material::Operation::Desaturate,
36 Material::Operation::Difference3ds,
37 Material::Operation::DifferenceMaya,
38 Material::Operation::Divide,
39 Material::Operation::Exclusion,
40 Material::Operation::HardLight,
41 Material::Operation::HardMix,
42 Material::Operation::Hue,
43 Material::Operation::Illuminate,
44 Material::Operation::In,
45 Material::Operation::Lighten3ds,
46 Material::Operation::LightenMaya,
47 Material::Operation::LinearBurn,
48 Material::Operation::LinearDodge,
49 Material::Operation::Multiply3ds,
50 Material::Operation::MultiplyMaya,
51 Material::Operation::None,
52 Material::Operation::Out,
53 Material::Operation::Over3ds,
54 Material::Operation::Overlay3ds,
55 Material::Operation::OverMaya,
56 Material::Operation::PinLight,
57 Material::Operation::Saturate,
58 Material::Operation::Saturation,
59 Material::Operation::Screen,
60 Material::Operation::SoftLight,
61 Material::Operation::Substract3ds,
62 Material::Operation::SubstractMaya,
63 Material::Operation::Value,
64 Material::Operation::Mask
69 static array<Material::StackType>^ convertAssimpStackTypeCppToCs = {
71 Material::StackType::Texture,
74 static array<Material::MappingMode>^ convertAssimpMappingModeCppToCs = {
75 Material::MappingMode::Wrap,
76 Material::MappingMode::Clamp,
77 Material::MappingMode::Mirror,
78 Material::MappingMode::Decal
88 unsigned int count = material->GetTextureCount(type);
122 for (
int iEl = count-1; iEl >= 0; --iEl) {
126 float elAlpha, elBlend;
133 int elTexChannel, elMappingModeU, elMappingModeV;
136 if (AI_SUCCESS != material->Get(AI_MATKEY_TEXBLEND(type, iEl), elBlend))
138 if (AI_SUCCESS != material->Get(AI_MATKEY_TEXFLAGS(type, iEl), elFlags))
144 if (AI_SUCCESS != material->Get(AI_MATKEY_TEXOP(type, iEl), elOp))
154 if (AI_SUCCESS != material->Get(AI_MATKEY_TEXTURE(type, iEl), elTexPath))
156 if (AI_SUCCESS != material->Get(AI_MATKEY_UVWSRC(type, iEl), elTexChannel))
158 if (AI_SUCCESS != material->Get(AI_MATKEY_MAPPINGMODE_U(type, iEl), elMappingModeU))
159 elMappingModeU = aiTextureMapMode_Wrap;
160 if (AI_SUCCESS != material->Get(AI_MATKEY_MAPPINGMODE_V(type, iEl), elMappingModeV))
161 elMappingModeV = aiTextureMapMode_Wrap;
164 convertAssimpMappingModeCppToCs[elMappingModeU],
165 convertAssimpMappingModeCppToCs[elMappingModeV],
Class representing a texture in the new Assimp's material stack.
Represents a color in the form of rgb.
Class representing the new Assimp's material stack in c#.
#define AI_MATKEY_TEXCOLOR(type, N)
Class representing a color in the new Assimp's material stack.
#define AI_MATKEY_TEXALPHA(type, N)
Class representing an operation in the new Assimp's material stack.
SiliconStudio.Core.Mathematics.Color Color
void Push(StackElement element)
Pushes the specified element.
Operation
Enumeration of the different operations in the new Assimp's material stack.
#define AI_MATKEY_TEXTYPE(type, N)
Class representing an element in the new Assimp's material stack.
static Material::Stack convertAssimpStackCppToCs(aiMaterial *material, const aiTextureType type)
Converts an Assimp's material stack From c++ to c#.