mirror of
https://github.com/TorqueGameEngines/Torque3D.git
synced 2026-02-13 19:53:48 +00:00
* Adjustment: Initial CMake reworking.
This commit is contained in:
parent
516163fd5d
commit
d7cdf54661
5394 changed files with 2615532 additions and 8711 deletions
|
|
@ -0,0 +1,98 @@
|
|||
//
|
||||
// v002MeshHelper.h
|
||||
// v002 Model Importer
|
||||
//
|
||||
// Created by vade on 9/26/10.
|
||||
// Copyright 2010 __MyCompanyName__. All rights reserved.
|
||||
//
|
||||
|
||||
#import <Cocoa/Cocoa.h>
|
||||
#import <OpenGL/OpenGL.h>
|
||||
#import "color4.h"
|
||||
#import "vector3.h"
|
||||
#import "vector2.h"
|
||||
#import "matrix4x4.h"
|
||||
|
||||
/* workflow:
|
||||
|
||||
1) create a new scene wrapper
|
||||
2) populate an array of of meshHelpers for each mesh in the original scene
|
||||
3) (eventually) create an animator instance
|
||||
4) scale the asset (needed?)
|
||||
5) create the asset data (GL resources, textures etc)
|
||||
5a) for each mesh create a material instance
|
||||
5b) create a static vertex buffer
|
||||
5c) create index buffer
|
||||
5d) populate the index buffer
|
||||
5e) (eventually) gather weights
|
||||
*/
|
||||
|
||||
#define BUFFER_OFFSET(i) ((char *)NULL + (i))
|
||||
|
||||
struct Vertex
|
||||
{
|
||||
aiVector3D vPosition;
|
||||
aiVector3D vNormal;
|
||||
|
||||
aiColor4D dColorDiffuse;
|
||||
aiVector3D vTangent;
|
||||
aiVector3D vBitangent;
|
||||
aiVector3D vTextureUV;
|
||||
aiVector3D vTextureUV2;
|
||||
unsigned char mBoneIndices[4];
|
||||
unsigned char mBoneWeights[4]; // last Weight not used, calculated inside the vertex shader
|
||||
};
|
||||
|
||||
|
||||
// Helper Class to store GPU related resources from a given aiMesh
|
||||
// Modeled after AssimpView asset helper
|
||||
@interface MeshHelper : NSObject
|
||||
{
|
||||
// Display list ID, this one shots *all drawing* of the mesh. Only ever use this to draw. Booya.
|
||||
GLuint displayList;
|
||||
|
||||
// VAO that encapsulates all VBO drawing state
|
||||
GLuint vao;
|
||||
|
||||
// VBOs
|
||||
GLuint vertexBuffer;
|
||||
GLuint indexBuffer;
|
||||
GLuint normalBuffer;
|
||||
GLuint numIndices;
|
||||
|
||||
// texture
|
||||
GLuint textureID;
|
||||
|
||||
// Material
|
||||
aiColor4D diffuseColor;
|
||||
aiColor4D specularColor;
|
||||
aiColor4D ambientColor;
|
||||
aiColor4D emissiveColor;
|
||||
|
||||
GLfloat opacity;
|
||||
GLfloat shininess;
|
||||
GLfloat specularStrength;
|
||||
|
||||
BOOL twoSided;
|
||||
}
|
||||
|
||||
@property (readwrite, assign) GLuint vao;
|
||||
@property (readwrite, assign) GLuint displayList;
|
||||
|
||||
@property (readwrite, assign) GLuint vertexBuffer;
|
||||
@property (readwrite, assign) GLuint indexBuffer;
|
||||
@property (readwrite, assign) GLuint normalBuffer;
|
||||
@property (readwrite, assign) GLuint numIndices;
|
||||
|
||||
@property (readwrite, assign) GLuint textureID;
|
||||
|
||||
@property (readwrite, assign) aiColor4D* diffuseColor;
|
||||
@property (readwrite, assign) aiColor4D* specularColor;
|
||||
@property (readwrite, assign) aiColor4D* ambientColor;
|
||||
@property (readwrite, assign) aiColor4D* emissiveColor;
|
||||
|
||||
@property (readwrite, assign) GLfloat opacity;
|
||||
@property (readwrite, assign) GLfloat shininess;
|
||||
@property (readwrite, assign) GLfloat specularStrength;
|
||||
@property (readwrite, assign) BOOL twoSided;
|
||||
@end
|
||||
Loading…
Add table
Add a link
Reference in a new issue