فهرست منبع

Disable Skybox

Daniele Bartolini 13 سال پیش
والد
کامیت
e43adaabfd
2فایلهای تغییر یافته به همراه114 افزوده شده و 126 حذف شده
  1. 107 118
      src/Skybox.cpp
  2. 7 8
      src/Skybox.h

+ 107 - 118
src/Skybox.cpp

@@ -28,7 +28,7 @@ OTHER DEALINGS IN THE SOFTWARE.
 #include "Types.h"
 #include "Types.h"
 #include "Mat4.h"
 #include "Mat4.h"
 #include "Camera.h"
 #include "Camera.h"
-#include "Texture.h"
+#include "TextureResource.h"
 #include "Material.h"
 #include "Material.h"
 #include "VertexBuffer.h"
 #include "VertexBuffer.h"
 #include "IndexBuffer.h"
 #include "IndexBuffer.h"
@@ -39,147 +39,136 @@ namespace crown
 
 
 Skybox::Skybox(const Vec3& position, bool visible)
 Skybox::Skybox(const Vec3& position, bool visible)
 {
 {
-	// Setup bounding box
-//	mBoundingBox.SetMin(Vec3(0.0f, 0.0f, 0.0f));
-//	mBoundingBox.SetMax(Vec3(0.0f, 0.0f, 0.0f));
-
-	// North face
-	mVertexData[0] = VertexData(Vec3(-1.0f, -1.0f, -1.0f), Vec3(0, 0, 0), Vec2(0.0f, 0.0f), Color4::WHITE);
-	mVertexData[1] = VertexData(Vec3(1.0f, -1.0f, -1.0f), Vec3(0, 0, 0), Vec2(1.0f, 0.0f), Color4::WHITE);
-	mVertexData[2] = VertexData(Vec3(1.0f, 1.0f, -1.0f), Vec3(0, 0, 0), Vec2(1.0f, 1.0f), Color4::WHITE);
-	mVertexData[3] = VertexData(Vec3(-1.0f, 1.0f, -1.0f), Vec3(0, 0, 0), Vec2(0.0f, 1.0f), Color4::WHITE);
-
-	// South face
-	mVertexData[4] = VertexData(Vec3(1.0f, -1.0f, 1.0f), Vec3(0, 0, 0), Vec2(0.0f, 0.0f), Color4::WHITE);
-	mVertexData[5] = VertexData(Vec3(-1.0f, -1.0f, 1.0f), Vec3(0, 0, 0), Vec2(1.0f, 0.0f), Color4::WHITE);
-	mVertexData[6] = VertexData(Vec3(-1.0f, 1.0f, 1.0f), Vec3(0, 0, 0), Vec2(1.0f, 1.0f), Color4::WHITE);
-	mVertexData[7] = VertexData(Vec3(1.0f, 1.0f, 1.0f), Vec3(0, 0, 0), Vec2(0.0f, 1.0f), Color4::WHITE);
-
-	// West face
-	mVertexData[8] = VertexData(Vec3(-1.0f, -1.0f, 1.0f), Vec3(0, 0, 0), Vec2(0.0f, 0.0f), Color4::WHITE);
-	mVertexData[9] = VertexData(Vec3(-1.0f, -1.0f, -1.0f), Vec3(0, 0, 0), Vec2(1.0f, 0.0f), Color4::WHITE);
-	mVertexData[10] = VertexData(Vec3(-1.0f, 1.0f, -1.0f), Vec3(0, 0, 0), Vec2(1.0f, 1.0f), Color4::WHITE);
-	mVertexData[11] = VertexData(Vec3(-1.0f, 1.0f, 1.0f), Vec3(0, 0, 0), Vec2(0.0f, 1.0f), Color4::WHITE);
-
-	// East face
-	mVertexData[12] = VertexData(Vec3(1.0f, -1.0f, -1.0f), Vec3(0, 0, 0), Vec2(0.0f, 0.0f), Color4::WHITE);
-	mVertexData[13] = VertexData(Vec3(1.0f, -1.0f, 1.0f), Vec3(0, 0, 0), Vec2(1.0f, 0.0f), Color4::WHITE);
-	mVertexData[14] = VertexData(Vec3(1.0f, 1.0f, 1.0f), Vec3(0, 0, 0), Vec2(1.0f, 1.0f), Color4::WHITE);
-	mVertexData[15] = VertexData(Vec3(1.0f, 1.0f, -1.0f), Vec3(0, 0, 0), Vec2(0.0f, 1.0f), Color4::WHITE);
-
-	// Up face
-	mVertexData[16] = VertexData(Vec3(-1.0f, 1.0f, -1.0f), Vec3(0, 0, 0), Vec2(0.0f, 0.0f), Color4::WHITE);
-	mVertexData[17] = VertexData(Vec3(1.0f, 1.0f, -1.0f), Vec3(0, 0, 0), Vec2(1.0f, 0.0f), Color4::WHITE);
-	mVertexData[18] = VertexData(Vec3(1.0f, 1.0f, 1.0f), Vec3(0, 0, 0), Vec2(1.0f, 1.0f), Color4::WHITE);
-	mVertexData[19] = VertexData(Vec3(-1.0f, 1.0f, 1.0f), Vec3(0, 0, 0), Vec2(0.0f, 1.0f), Color4::WHITE);
-
-	// Down face
-	mVertexData[20] = VertexData(Vec3(-1.0f, -1.0f, 1.0f), Vec3(0, 0, 0), Vec2(0.0f, 0.0f), Color4::WHITE);
-	mVertexData[21] = VertexData(Vec3(1.0f, -1.0f, 1.0f), Vec3(0, 0, 0), Vec2(1.0f, 0.0f), Color4::WHITE);
-	mVertexData[22] = VertexData(Vec3(1.0f, -1.0f, -1.0f), Vec3(0, 0, 0), Vec2(1.0f, 1.0f), Color4::WHITE);
-	mVertexData[23] = VertexData(Vec3(-1.0f, -1.0f, -1.0f), Vec3(0, 0, 0), Vec2(0.0f, 1.0f), Color4::WHITE);
-
-	mFaceData[0] = FaceData(0, 1, 2);
-	mFaceData[1] = FaceData(0, 2, 3);
-
-	mFaceData[2] = FaceData(4, 5, 6);
-	mFaceData[3] = FaceData(4, 6, 7);
-
-	mFaceData[4] = FaceData(8, 9, 10);
-	mFaceData[5] = FaceData(8, 10, 11);
-
-	mFaceData[6] = FaceData(12, 13, 14);
-	mFaceData[7] = FaceData(12, 14, 15);
-
-	mFaceData[8] = FaceData(16, 17, 18);
-	mFaceData[9] = FaceData(16, 18, 19);
-
-	mFaceData[10] = FaceData(20, 21, 22);
-	mFaceData[11] = FaceData(20, 22, 23);
-
-	mVertexBuffer = GetDevice()->GetRenderer()->CreateVertexBuffer();
-	mIndexBuffer[0] = GetDevice()->GetRenderer()->CreateIndexBuffer();
-	mIndexBuffer[1] = GetDevice()->GetRenderer()->CreateIndexBuffer();
-	mIndexBuffer[2] = GetDevice()->GetRenderer()->CreateIndexBuffer();
-	mIndexBuffer[3] = GetDevice()->GetRenderer()->CreateIndexBuffer();
-	mIndexBuffer[4] = GetDevice()->GetRenderer()->CreateIndexBuffer();
-	mIndexBuffer[5] = GetDevice()->GetRenderer()->CreateIndexBuffer();
-
-	mVertexBuffer->SetVertexData((VertexBufferMode) (VBM_TEXTURE_COORDS | VBM_NORMAL_COORDS | VBM_COLOR_COORDS), (float*) &mVertexData[0], 24);
-	mIndexBuffer[0]->SetIndexData(&mFaceData[0].vertex[0], 6);
-	mIndexBuffer[1]->SetIndexData(&mFaceData[2].vertex[0], 6);
-	mIndexBuffer[2]->SetIndexData(&mFaceData[4].vertex[0], 6);
-	mIndexBuffer[3]->SetIndexData(&mFaceData[6].vertex[0], 6);
-	mIndexBuffer[4]->SetIndexData(&mFaceData[8].vertex[0], 6);
-	mIndexBuffer[5]->SetIndexData(&mFaceData[10].vertex[0], 6);
+//	// Setup bounding box
+////	mBoundingBox.SetMin(Vec3(0.0f, 0.0f, 0.0f));
+////	mBoundingBox.SetMax(Vec3(0.0f, 0.0f, 0.0f));
+
+//	// North face
+//	mVertexData[0] = VertexData(Vec3(-1.0f, -1.0f, -1.0f), Vec3(0, 0, 0), Vec2(0.0f, 0.0f), Color4::WHITE);
+//	mVertexData[1] = VertexData(Vec3(1.0f, -1.0f, -1.0f), Vec3(0, 0, 0), Vec2(1.0f, 0.0f), Color4::WHITE);
+//	mVertexData[2] = VertexData(Vec3(1.0f, 1.0f, -1.0f), Vec3(0, 0, 0), Vec2(1.0f, 1.0f), Color4::WHITE);
+//	mVertexData[3] = VertexData(Vec3(-1.0f, 1.0f, -1.0f), Vec3(0, 0, 0), Vec2(0.0f, 1.0f), Color4::WHITE);
+
+//	// South face
+//	mVertexData[4] = VertexData(Vec3(1.0f, -1.0f, 1.0f), Vec3(0, 0, 0), Vec2(0.0f, 0.0f), Color4::WHITE);
+//	mVertexData[5] = VertexData(Vec3(-1.0f, -1.0f, 1.0f), Vec3(0, 0, 0), Vec2(1.0f, 0.0f), Color4::WHITE);
+//	mVertexData[6] = VertexData(Vec3(-1.0f, 1.0f, 1.0f), Vec3(0, 0, 0), Vec2(1.0f, 1.0f), Color4::WHITE);
+//	mVertexData[7] = VertexData(Vec3(1.0f, 1.0f, 1.0f), Vec3(0, 0, 0), Vec2(0.0f, 1.0f), Color4::WHITE);
+
+//	// West face
+//	mVertexData[8] = VertexData(Vec3(-1.0f, -1.0f, 1.0f), Vec3(0, 0, 0), Vec2(0.0f, 0.0f), Color4::WHITE);
+//	mVertexData[9] = VertexData(Vec3(-1.0f, -1.0f, -1.0f), Vec3(0, 0, 0), Vec2(1.0f, 0.0f), Color4::WHITE);
+//	mVertexData[10] = VertexData(Vec3(-1.0f, 1.0f, -1.0f), Vec3(0, 0, 0), Vec2(1.0f, 1.0f), Color4::WHITE);
+//	mVertexData[11] = VertexData(Vec3(-1.0f, 1.0f, 1.0f), Vec3(0, 0, 0), Vec2(0.0f, 1.0f), Color4::WHITE);
+
+//	// East face
+//	mVertexData[12] = VertexData(Vec3(1.0f, -1.0f, -1.0f), Vec3(0, 0, 0), Vec2(0.0f, 0.0f), Color4::WHITE);
+//	mVertexData[13] = VertexData(Vec3(1.0f, -1.0f, 1.0f), Vec3(0, 0, 0), Vec2(1.0f, 0.0f), Color4::WHITE);
+//	mVertexData[14] = VertexData(Vec3(1.0f, 1.0f, 1.0f), Vec3(0, 0, 0), Vec2(1.0f, 1.0f), Color4::WHITE);
+//	mVertexData[15] = VertexData(Vec3(1.0f, 1.0f, -1.0f), Vec3(0, 0, 0), Vec2(0.0f, 1.0f), Color4::WHITE);
+
+//	// Up face
+//	mVertexData[16] = VertexData(Vec3(-1.0f, 1.0f, -1.0f), Vec3(0, 0, 0), Vec2(0.0f, 0.0f), Color4::WHITE);
+//	mVertexData[17] = VertexData(Vec3(1.0f, 1.0f, -1.0f), Vec3(0, 0, 0), Vec2(1.0f, 0.0f), Color4::WHITE);
+//	mVertexData[18] = VertexData(Vec3(1.0f, 1.0f, 1.0f), Vec3(0, 0, 0), Vec2(1.0f, 1.0f), Color4::WHITE);
+//	mVertexData[19] = VertexData(Vec3(-1.0f, 1.0f, 1.0f), Vec3(0, 0, 0), Vec2(0.0f, 1.0f), Color4::WHITE);
+
+//	// Down face
+//	mVertexData[20] = VertexData(Vec3(-1.0f, -1.0f, 1.0f), Vec3(0, 0, 0), Vec2(0.0f, 0.0f), Color4::WHITE);
+//	mVertexData[21] = VertexData(Vec3(1.0f, -1.0f, 1.0f), Vec3(0, 0, 0), Vec2(1.0f, 0.0f), Color4::WHITE);
+//	mVertexData[22] = VertexData(Vec3(1.0f, -1.0f, -1.0f), Vec3(0, 0, 0), Vec2(1.0f, 1.0f), Color4::WHITE);
+//	mVertexData[23] = VertexData(Vec3(-1.0f, -1.0f, -1.0f), Vec3(0, 0, 0), Vec2(0.0f, 1.0f), Color4::WHITE);
+
+//	mFaceData[0] = FaceData(0, 1, 2);
+//	mFaceData[1] = FaceData(0, 2, 3);
+
+//	mFaceData[2] = FaceData(4, 5, 6);
+//	mFaceData[3] = FaceData(4, 6, 7);
+
+//	mFaceData[4] = FaceData(8, 9, 10);
+//	mFaceData[5] = FaceData(8, 10, 11);
+
+//	mFaceData[6] = FaceData(12, 13, 14);
+//	mFaceData[7] = FaceData(12, 14, 15);
+
+//	mFaceData[8] = FaceData(16, 17, 18);
+//	mFaceData[9] = FaceData(16, 18, 19);
+
+//	mFaceData[10] = FaceData(20, 21, 22);
+//	mFaceData[11] = FaceData(20, 22, 23);
+
+//	mVertexBuffer = GetDevice()->GetRenderer()->CreateVertexBuffer();
+//	mIndexBuffer[0] = GetDevice()->GetRenderer()->CreateIndexBuffer();
+//	mIndexBuffer[1] = GetDevice()->GetRenderer()->CreateIndexBuffer();
+//	mIndexBuffer[2] = GetDevice()->GetRenderer()->CreateIndexBuffer();
+//	mIndexBuffer[3] = GetDevice()->GetRenderer()->CreateIndexBuffer();
+//	mIndexBuffer[4] = GetDevice()->GetRenderer()->CreateIndexBuffer();
+//	mIndexBuffer[5] = GetDevice()->GetRenderer()->CreateIndexBuffer();
+
+//	mVertexBuffer->SetVertexData((VertexBufferMode) (VBM_TEXTURE_COORDS | VBM_NORMAL_COORDS | VBM_COLOR_COORDS), (float*) &mVertexData[0], 24);
+//	mIndexBuffer[0]->SetIndexData(&mFaceData[0].vertex[0], 6);
+//	mIndexBuffer[1]->SetIndexData(&mFaceData[2].vertex[0], 6);
+//	mIndexBuffer[2]->SetIndexData(&mFaceData[4].vertex[0], 6);
+//	mIndexBuffer[3]->SetIndexData(&mFaceData[6].vertex[0], 6);
+//	mIndexBuffer[4]->SetIndexData(&mFaceData[8].vertex[0], 6);
+//	mIndexBuffer[5]->SetIndexData(&mFaceData[10].vertex[0], 6);
 }
 }
 
 
 Skybox::~Skybox()
 Skybox::~Skybox()
 {
 {
 }
 }
 
 
-void Skybox::SetFace(SkyboxFace face, Texture* texture)
-{
-	if (face > SF_COUNT)
-	{
-		return;
-	}
-
-	mSkyboxFace[face] = texture;
-	texture->SetWrap(TW_CLAMP);
-}
-
 void Skybox::Render()
 void Skybox::Render()
 {
 {
-	Renderer* renderer = GetDevice()->GetRenderer();
+//	Renderer* renderer = GetDevice()->GetRenderer();
 
 
-//	Camera* camera = mCreator->GetCurrentCamera();
-	Mat4 mat;// = camera->GetAbsoluteTransformation();
-	mat.load_identity();
-	Mat4 mat2;
+////	Camera* camera = mCreator->GetCurrentCamera();
+//	Mat4 mat;// = camera->GetAbsoluteTransformation();
+//	mat.load_identity();
+//	Mat4 mat2;
 
 
-	mat2.load_identity();
-	mat2.set_translation(mat.get_translation());
+//	mat2.load_identity();
+//	mat2.set_translation(mat.get_translation());
 
 
-	float near;
-	float far;
-	float scale;
+//	float near;
+//	float far;
+//	float scale;
 
 
-	near = 0.1f;//camera->GetNearClipDistance();
-	far = 100.0f;//camera->GetFarClipDistance();
-	scale = (near + far) * 0.5f;
+//	near = 0.1f;//camera->GetNearClipDistance();
+//	far = 100.0f;//camera->GetFarClipDistance();
+//	scale = (near + far) * 0.5f;
 
 
-	mat2.set_scale(Vec3(scale, scale, scale));
+//	mat2.set_scale(Vec3(scale, scale, scale));
 
 
-	renderer->_SetDepthTest(false);
-	renderer->_SetDepthWrite(false);
+//	renderer->_SetDepthTest(false);
+//	renderer->_SetDepthWrite(false);
 
 
-	renderer->_SetTexturing(0, true);
+//	renderer->_SetTexturing(0, true);
 
 
-	renderer->SetMatrix(MT_MODEL, mat2);
+//	renderer->SetMatrix(MT_MODEL, mat2);
 
 
-	renderer->SetTexture(0, mSkyboxFace[SF_NORTH]);
-	renderer->RenderVertexIndexBuffer(mVertexBuffer, mIndexBuffer[0]);
+//	renderer->SetTexture(0, mSkyboxFace[SF_NORTH]);
+//	renderer->RenderVertexIndexBuffer(mVertexBuffer, mIndexBuffer[0]);
 
 
-	renderer->SetTexture(0, mSkyboxFace[SF_SOUTH]);
-	renderer->RenderVertexIndexBuffer(mVertexBuffer, mIndexBuffer[1]);
+//	renderer->SetTexture(0, mSkyboxFace[SF_SOUTH]);
+//	renderer->RenderVertexIndexBuffer(mVertexBuffer, mIndexBuffer[1]);
 
 
-	renderer->SetTexture(0, mSkyboxFace[SF_WEST]);
-	renderer->RenderVertexIndexBuffer(mVertexBuffer, mIndexBuffer[2]);
+//	renderer->SetTexture(0, mSkyboxFace[SF_WEST]);
+//	renderer->RenderVertexIndexBuffer(mVertexBuffer, mIndexBuffer[2]);
 
 
-	renderer->SetTexture(0, mSkyboxFace[SF_EAST]);
-	renderer->RenderVertexIndexBuffer(mVertexBuffer, mIndexBuffer[3]);
+//	renderer->SetTexture(0, mSkyboxFace[SF_EAST]);
+//	renderer->RenderVertexIndexBuffer(mVertexBuffer, mIndexBuffer[3]);
 
 
-	renderer->SetTexture(0, mSkyboxFace[SF_UP]);
-	renderer->RenderVertexIndexBuffer(mVertexBuffer, mIndexBuffer[4]);
+//	renderer->SetTexture(0, mSkyboxFace[SF_UP]);
+//	renderer->RenderVertexIndexBuffer(mVertexBuffer, mIndexBuffer[4]);
 
 
-	renderer->SetTexture(0, mSkyboxFace[SF_DOWN]);
-	renderer->RenderVertexIndexBuffer(mVertexBuffer, mIndexBuffer[5]);
+//	renderer->SetTexture(0, mSkyboxFace[SF_DOWN]);
+//	renderer->RenderVertexIndexBuffer(mVertexBuffer, mIndexBuffer[5]);
 
 
-	renderer->_SetDepthTest(true);
-	renderer->_SetDepthWrite(true);
+//	renderer->_SetDepthTest(true);
+//	renderer->_SetDepthWrite(true);
 
 
-	renderer->_SetTexturing(0, false);
+//	renderer->_SetTexturing(0, false);
 }
 }
 
 
 } // namespace crown
 } // namespace crown

+ 7 - 8
src/Skybox.h

@@ -27,13 +27,12 @@ OTHER DEALINGS IN THE SOFTWARE.
 
 
 #include "Types.h"
 #include "Types.h"
 #include "Data.h"
 #include "Data.h"
-#include "Texture.h"
+#include "TextureResource.h"
 #include "Vec3.h"
 #include "Vec3.h"
 
 
 namespace crown
 namespace crown
 {
 {
 
 
-class Texture;
 class VertexBuffer;
 class VertexBuffer;
 class IndexBuffer;
 class IndexBuffer;
 
 
@@ -59,19 +58,19 @@ public:
 	//! Destructor
 	//! Destructor
 	~Skybox();
 	~Skybox();
 
 
-	void SetFace(SkyboxFace face, Texture* texture);
+//	void SetFace(SkyboxFace face, Texture* texture);
 
 
 	virtual void Render();
 	virtual void Render();
 
 
 private:
 private:
 
 
-	VertexData mVertexData[24];
-	FaceData mFaceData[12];
+//	VertexData mVertexData[24];
+//	FaceData mFaceData[12];
 
 
-	VertexBuffer* mVertexBuffer;
-	IndexBuffer* mIndexBuffer[6];
+//	VertexBuffer* mVertexBuffer;
+//	IndexBuffer* mIndexBuffer[6];
 
 
-	Texture* mSkyboxFace[6];
+//	Texture* mSkyboxFace[6];
 };
 };
 
 
 } // namespace crown
 } // namespace crown