Merge branch 'master' into rbsheth_hunter_rapidjson
commit
78b30d1752
|
@ -141,7 +141,10 @@ void FBXImporter::SetupProperties(const Importer *pImp) {
|
||||||
// ------------------------------------------------------------------------------------------------
|
// ------------------------------------------------------------------------------------------------
|
||||||
// Imports the given file into the given scene structure.
|
// Imports the given file into the given scene structure.
|
||||||
void FBXImporter::InternReadFile(const std::string &pFile, aiScene *pScene, IOSystem *pIOHandler) {
|
void FBXImporter::InternReadFile(const std::string &pFile, aiScene *pScene, IOSystem *pIOHandler) {
|
||||||
std::unique_ptr<IOStream> stream(pIOHandler->Open(pFile, "rb"));
|
auto streamCloser = [&](IOStream *pStream) {
|
||||||
|
pIOHandler->Close(pStream);
|
||||||
|
};
|
||||||
|
std::unique_ptr<IOStream, decltype(streamCloser)> stream(pIOHandler->Open(pFile, "rb"), streamCloser);
|
||||||
if (!stream) {
|
if (!stream) {
|
||||||
ThrowException("Could not open file for reading");
|
ThrowException("Could not open file for reading");
|
||||||
}
|
}
|
||||||
|
|
|
@ -107,7 +107,10 @@ const aiImporterDesc *ObjFileImporter::GetInfo() const {
|
||||||
void ObjFileImporter::InternReadFile(const std::string &file, aiScene *pScene, IOSystem *pIOHandler) {
|
void ObjFileImporter::InternReadFile(const std::string &file, aiScene *pScene, IOSystem *pIOHandler) {
|
||||||
// Read file into memory
|
// Read file into memory
|
||||||
static const std::string mode = "rb";
|
static const std::string mode = "rb";
|
||||||
std::unique_ptr<IOStream> fileStream(pIOHandler->Open(file, mode));
|
auto streamCloser = [&](IOStream *pStream) {
|
||||||
|
pIOHandler->Close(pStream);
|
||||||
|
};
|
||||||
|
std::unique_ptr<IOStream, decltype(streamCloser)> fileStream(pIOHandler->Open(file, mode), streamCloser);
|
||||||
if (!fileStream.get()) {
|
if (!fileStream.get()) {
|
||||||
throw DeadlyImportError("Failed to open file " + file + ".");
|
throw DeadlyImportError("Failed to open file " + file + ".");
|
||||||
}
|
}
|
||||||
|
|
|
@ -38,6 +38,8 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
|
|
||||||
----------------------------------------------------------------------
|
----------------------------------------------------------------------
|
||||||
*/
|
*/
|
||||||
|
#ifndef ASSIMP_BUILD_NO_GLTF_IMPORTER
|
||||||
|
|
||||||
#include "AssetLib/glTF/glTFCommon.h"
|
#include "AssetLib/glTF/glTFCommon.h"
|
||||||
|
|
||||||
namespace glTFCommon {
|
namespace glTFCommon {
|
||||||
|
@ -187,3 +189,5 @@ bool ParseDataURI(const char *const_uri, size_t uriLen, DataURI &out) {
|
||||||
|
|
||||||
} // namespace Util
|
} // namespace Util
|
||||||
} // namespace glTFCommon
|
} // namespace glTFCommon
|
||||||
|
|
||||||
|
#endif
|
||||||
|
|
|
@ -56,109 +56,115 @@ package jassimp;
|
||||||
* regardless which 3D tool they're using.
|
* regardless which 3D tool they're using.
|
||||||
*/
|
*/
|
||||||
public enum AiTextureType {
|
public enum AiTextureType {
|
||||||
/**
|
/** Dummy value.
|
||||||
* The texture is combined with the result of the diffuse
|
*
|
||||||
|
* No texture, but the value to be used as 'texture semantic'
|
||||||
|
* (#aiMaterialProperty::mSemantic) for all material properties
|
||||||
|
* *not* related to textures.
|
||||||
|
*/
|
||||||
|
NONE(0),
|
||||||
|
|
||||||
|
/** LEGACY API MATERIALS
|
||||||
|
* Legacy refers to materials which
|
||||||
|
* Were originally implemented in the specifications around 2000.
|
||||||
|
* These must never be removed, as most engines support them.
|
||||||
|
*/
|
||||||
|
|
||||||
|
/** The texture is combined with the result of the diffuse
|
||||||
* lighting equation.
|
* lighting equation.
|
||||||
*/
|
*/
|
||||||
DIFFUSE(0x1),
|
DIFFUSE(1),
|
||||||
|
|
||||||
|
/** The texture is combined with the result of the specular
|
||||||
/**
|
|
||||||
* The texture is combined with the result of the specular
|
|
||||||
* lighting equation.
|
* lighting equation.
|
||||||
*/
|
*/
|
||||||
SPECULAR(0x2),
|
SPECULAR(2),
|
||||||
|
|
||||||
|
/** The texture is combined with the result of the ambient
|
||||||
/**
|
|
||||||
* The texture is combined with the result of the ambient
|
|
||||||
* lighting equation.
|
* lighting equation.
|
||||||
*/
|
*/
|
||||||
AMBIENT(0x3),
|
AMBIENT(3),
|
||||||
|
|
||||||
|
/** The texture is added to the result of the lighting
|
||||||
/**
|
|
||||||
* The texture is added to the result of the lighting
|
|
||||||
* calculation. It isn't influenced by incoming light.
|
* calculation. It isn't influenced by incoming light.
|
||||||
*/
|
*/
|
||||||
EMISSIVE(0x4),
|
EMISSIVE(4),
|
||||||
|
|
||||||
|
/** The texture is a height map.
|
||||||
/**
|
|
||||||
* The texture is a height map.<p>
|
|
||||||
*
|
*
|
||||||
* By convention, higher gray-scale values stand for
|
* By convention, higher gray-scale values stand for
|
||||||
* higher elevations from the base height.
|
* higher elevations from the base height.
|
||||||
*/
|
*/
|
||||||
HEIGHT(0x5),
|
HEIGHT(5),
|
||||||
|
|
||||||
|
/** The texture is a (tangent space) normal-map.
|
||||||
/**
|
|
||||||
* The texture is a (tangent space) normal-map.<p>
|
|
||||||
*
|
*
|
||||||
* Again, there are several conventions for tangent-space
|
* Again, there are several conventions for tangent-space
|
||||||
* normal maps. Assimp does (intentionally) not distinguish here.
|
* normal maps. Assimp does (intentionally) not
|
||||||
|
* distinguish here.
|
||||||
*/
|
*/
|
||||||
NORMALS(0x6),
|
NORMALS(6),
|
||||||
|
|
||||||
|
/** The texture defines the glossiness of the material.
|
||||||
/**
|
|
||||||
* The texture defines the glossiness of the material.<p>
|
|
||||||
*
|
*
|
||||||
* The glossiness is in fact the exponent of the specular
|
* The glossiness is in fact the exponent of the specular
|
||||||
* (phong) lighting equation. Usually there is a conversion
|
* (phong) lighting equation. Usually there is a conversion
|
||||||
* function defined to map the linear color values in the
|
* function defined to map the linear color values in the
|
||||||
* texture to a suitable exponent. Have fun.
|
* texture to a suitable exponent. Have fun.
|
||||||
*/
|
*/
|
||||||
SHININESS(0x7),
|
SHININESS(7),
|
||||||
|
|
||||||
|
/** The texture defines per-pixel opacity.
|
||||||
/**
|
|
||||||
* The texture defines per-pixel opacity.<p>
|
|
||||||
*
|
*
|
||||||
* Usually 'white' means opaque and 'black' means
|
* Usually 'white' means opaque and 'black' means
|
||||||
* 'transparency'. Or quite the opposite. Have fun.
|
* 'transparency'. Or quite the opposite. Have fun.
|
||||||
*/
|
*/
|
||||||
OPACITY(0x8),
|
OPACITY(8),
|
||||||
|
|
||||||
|
/** Displacement texture
|
||||||
/**
|
|
||||||
* Displacement texture.<p>
|
|
||||||
*
|
*
|
||||||
* The exact purpose and format is application-dependent.
|
* The exact purpose and format is application-dependent.
|
||||||
* Higher color values stand for higher vertex displacements.
|
* Higher color values stand for higher vertex displacements.
|
||||||
*/
|
*/
|
||||||
DISPLACEMENT(0x9),
|
DISPLACEMENT(9),
|
||||||
|
|
||||||
|
/** Lightmap texture (aka Ambient Occlusion)
|
||||||
/**
|
|
||||||
* Lightmap texture (aka Ambient Occlusion).<p>
|
|
||||||
*
|
*
|
||||||
* Both 'Lightmaps' and dedicated 'ambient occlusion maps' are
|
* Both 'Lightmaps' and dedicated 'ambient occlusion maps' are
|
||||||
* covered by this material property. The texture contains a
|
* covered by this material property. The texture contains a
|
||||||
* scaling value for the final color value of a pixel. Its
|
* scaling value for the final color value of a pixel. Its
|
||||||
* intensity is not affected by incoming light.
|
* intensity is not affected by incoming light.
|
||||||
*/
|
*/
|
||||||
LIGHTMAP(0xA),
|
LIGHTMAP(10),
|
||||||
|
|
||||||
|
/** Reflection texture
|
||||||
/**
|
|
||||||
* Reflection texture.<p>
|
|
||||||
*
|
*
|
||||||
* Contains the color of a perfect mirror reflection.
|
* Contains the color of a perfect mirror reflection.
|
||||||
* Rarely used, almost never for real-time applications.
|
* Rarely used, almost never for real-time applications.
|
||||||
*/
|
*/
|
||||||
REFLECTION(0xB),
|
REFLECTION(11),
|
||||||
|
|
||||||
|
/** PBR Materials
|
||||||
|
* PBR definitions from maya and other modelling packages now use this standard.
|
||||||
|
* This was originally introduced around 2012.
|
||||||
|
* Support for this is in game engines like Godot, Unreal or Unity3D.
|
||||||
|
* Modelling packages which use this are very common now.
|
||||||
|
*/
|
||||||
|
|
||||||
/**
|
BASE_COLOR(12),
|
||||||
* Unknown texture.<p>
|
NORMAL_CAMERA(13),
|
||||||
|
EMISSION_COLOR(14),
|
||||||
|
METALNESS(15),
|
||||||
|
DIFFUSE_ROUGHNESS(16),
|
||||||
|
AMBIENT_OCCLUSION(17),
|
||||||
|
|
||||||
|
/** Unknown texture
|
||||||
*
|
*
|
||||||
* A texture reference that does not match any of the definitions
|
* A texture reference that does not match any of the definitions
|
||||||
* above is considered to be 'unknown'. It is still imported,
|
* above is considered to be 'unknown'. It is still imported,
|
||||||
* but is excluded from any further postprocessing.
|
* but is excluded from any further post-processing.
|
||||||
*/
|
*/
|
||||||
UNKNOWN(0xC);
|
UNKNOWN(18);
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
Loading…
Reference in New Issue