Compare commits
3 Commits
V10.3.1
...
3a2d19dff4
Author | SHA1 | Date | |
---|---|---|---|
3a2d19dff4 | |||
dbc7003569 | |||
c5bfa2e621 |
176
.idea/.idea.KhaoticEngineReborn/.idea/workspace.xml
generated
176
.idea/.idea.KhaoticEngineReborn/.idea/workspace.xml
generated
@@ -6,8 +6,11 @@
|
||||
<component name="ChangeListManager">
|
||||
<list default="true" id="e81d6e08-efc7-40a0-909d-ec4943d948e9" name="Changes" comment="">
|
||||
<change beforePath="$PROJECT_DIR$/.idea/.idea.KhaoticEngineReborn/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/.idea.KhaoticEngineReborn/.idea/workspace.xml" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/enginecustom/imgui.ini" beforeDir="false" afterPath="$PROJECT_DIR$/enginecustom/imgui.ini" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/enginecustom/src/src/system/imguiManager.cpp" beforeDir="false" afterPath="$PROJECT_DIR$/enginecustom/src/src/system/imguiManager.cpp" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/enginecustom/src/inc/system/applicationclass.h" beforeDir="false" afterPath="$PROJECT_DIR$/enginecustom/src/inc/system/applicationclass.h" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/enginecustom/src/inc/system/modelclass.h" beforeDir="false" afterPath="$PROJECT_DIR$/enginecustom/src/inc/system/modelclass.h" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/enginecustom/src/inc/system/object.h" beforeDir="false" afterPath="$PROJECT_DIR$/enginecustom/src/inc/system/object.h" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/enginecustom/src/src/system/applicationclass.cpp" beforeDir="false" afterPath="$PROJECT_DIR$/enginecustom/src/src/system/applicationclass.cpp" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/enginecustom/src/src/system/modelclass.cpp" beforeDir="false" afterPath="$PROJECT_DIR$/enginecustom/src/src/system/modelclass.cpp" afterDir="false" />
|
||||
</list>
|
||||
<option name="SHOW_DIALOG" value="false" />
|
||||
<option name="HIGHLIGHT_CONFLICTS" value="true" />
|
||||
@@ -21,6 +24,133 @@
|
||||
<option name="RECENT_GIT_ROOT_PATH" value="$PROJECT_DIR$" />
|
||||
</component>
|
||||
<component name="HighlightingSettingsPerFile">
|
||||
<setting file="mock:///dummy.cpp" root0="SKIP_HIGHLIGHTING" />
|
||||
<setting file="mock:///dummy.cpp" root0="SKIP_HIGHLIGHTING" />
|
||||
<setting file="mock:///dummy.cpp" root0="SKIP_HIGHLIGHTING" />
|
||||
<setting file="mock:///dummy.cpp" root0="SKIP_HIGHLIGHTING" />
|
||||
<setting file="mock:///dummy.cpp" root0="SKIP_HIGHLIGHTING" />
|
||||
<setting file="mock:///dummy.cpp" root0="SKIP_HIGHLIGHTING" />
|
||||
<setting file="mock:///dummy.cpp" root0="SKIP_HIGHLIGHTING" />
|
||||
<setting file="mock:///dummy.cpp" root0="SKIP_HIGHLIGHTING" />
|
||||
<setting file="mock:///dummy.cpp" root0="SKIP_HIGHLIGHTING" />
|
||||
<setting file="mock:///dummy.cpp" root0="SKIP_HIGHLIGHTING" />
|
||||
<setting file="mock:///dummy.cpp" root0="SKIP_HIGHLIGHTING" />
|
||||
<setting file="mock:///dummy.cpp" root0="SKIP_HIGHLIGHTING" />
|
||||
<setting file="mock:///dummy.cpp" root0="SKIP_HIGHLIGHTING" />
|
||||
<setting file="mock:///dummy.cpp" root0="SKIP_HIGHLIGHTING" />
|
||||
<setting file="mock:///dummy.cpp" root0="SKIP_HIGHLIGHTING" />
|
||||
<setting file="mock:///dummy.cpp" root0="SKIP_HIGHLIGHTING" />
|
||||
<setting file="mock:///dummy.cpp" root0="SKIP_HIGHLIGHTING" />
|
||||
<setting file="mock:///dummy.cpp" root0="SKIP_HIGHLIGHTING" />
|
||||
<setting file="mock:///dummy.cpp" root0="SKIP_HIGHLIGHTING" />
|
||||
<setting file="mock:///dummy.cpp" root0="SKIP_HIGHLIGHTING" />
|
||||
<setting file="mock:///dummy.cpp" root0="SKIP_HIGHLIGHTING" />
|
||||
<setting file="mock:///dummy.cpp" root0="SKIP_HIGHLIGHTING" />
|
||||
<setting file="mock:///dummy.cpp" root0="SKIP_HIGHLIGHTING" />
|
||||
<setting file="mock:///dummy.cpp" root0="SKIP_HIGHLIGHTING" />
|
||||
<setting file="mock:///dummy.cpp" root0="SKIP_HIGHLIGHTING" />
|
||||
<setting file="mock:///dummy.cpp" root0="SKIP_HIGHLIGHTING" />
|
||||
<setting file="mock:///dummy.cpp" root0="SKIP_HIGHLIGHTING" />
|
||||
<setting file="mock:///dummy.cpp" root0="SKIP_HIGHLIGHTING" />
|
||||
<setting file="mock:///dummy.cpp" root0="SKIP_HIGHLIGHTING" />
|
||||
<setting file="mock:///dummy.cpp" root0="SKIP_HIGHLIGHTING" />
|
||||
<setting file="mock:///dummy.cpp" root0="SKIP_HIGHLIGHTING" />
|
||||
<setting file="mock:///dummy.cpp" root0="SKIP_HIGHLIGHTING" />
|
||||
<setting file="mock:///dummy.cpp" root0="SKIP_HIGHLIGHTING" />
|
||||
<setting file="mock:///dummy.cpp" root0="SKIP_HIGHLIGHTING" />
|
||||
<setting file="mock:///dummy.cpp" root0="SKIP_HIGHLIGHTING" />
|
||||
<setting file="mock:///dummy.cpp" root0="SKIP_HIGHLIGHTING" />
|
||||
<setting file="mock:///dummy.cpp" root0="SKIP_HIGHLIGHTING" />
|
||||
<setting file="mock:///dummy.cpp" root0="SKIP_HIGHLIGHTING" />
|
||||
<setting file="mock:///dummy.cpp" root0="SKIP_HIGHLIGHTING" />
|
||||
<setting file="mock:///dummy.cpp" root0="SKIP_HIGHLIGHTING" />
|
||||
<setting file="mock:///dummy.cpp" root0="SKIP_HIGHLIGHTING" />
|
||||
<setting file="mock:///dummy.cpp" root0="SKIP_HIGHLIGHTING" />
|
||||
<setting file="mock:///dummy.cpp" root0="SKIP_HIGHLIGHTING" />
|
||||
<setting file="mock:///dummy.cpp" root0="SKIP_HIGHLIGHTING" />
|
||||
<setting file="mock:///dummy.cpp" root0="SKIP_HIGHLIGHTING" />
|
||||
<setting file="mock:///dummy.cpp" root0="SKIP_HIGHLIGHTING" />
|
||||
<setting file="mock:///dummy.cpp" root0="SKIP_HIGHLIGHTING" />
|
||||
<setting file="mock:///dummy.cpp" root0="SKIP_HIGHLIGHTING" />
|
||||
<setting file="mock:///dummy.cpp" root0="SKIP_HIGHLIGHTING" />
|
||||
<setting file="mock:///dummy.cpp" root0="SKIP_HIGHLIGHTING" />
|
||||
<setting file="mock:///dummy.cpp" root0="SKIP_HIGHLIGHTING" />
|
||||
<setting file="mock:///dummy.cpp" root0="SKIP_HIGHLIGHTING" />
|
||||
<setting file="mock:///dummy.cpp" root0="SKIP_HIGHLIGHTING" />
|
||||
<setting file="mock:///dummy.cpp" root0="SKIP_HIGHLIGHTING" />
|
||||
<setting file="mock:///dummy.cpp" root0="SKIP_HIGHLIGHTING" />
|
||||
<setting file="mock:///dummy.cpp" root0="SKIP_HIGHLIGHTING" />
|
||||
<setting file="mock:///dummy.cpp" root0="SKIP_HIGHLIGHTING" />
|
||||
<setting file="mock:///dummy.cpp" root0="SKIP_HIGHLIGHTING" />
|
||||
<setting file="mock:///dummy.cpp" root0="SKIP_HIGHLIGHTING" />
|
||||
<setting file="mock:///dummy.cpp" root0="SKIP_HIGHLIGHTING" />
|
||||
<setting file="mock:///dummy.cpp" root0="SKIP_HIGHLIGHTING" />
|
||||
<setting file="mock:///dummy.cpp" root0="SKIP_HIGHLIGHTING" />
|
||||
<setting file="mock:///dummy.cpp" root0="SKIP_HIGHLIGHTING" />
|
||||
<setting file="mock:///dummy.cpp" root0="SKIP_HIGHLIGHTING" />
|
||||
<setting file="mock:///dummy.cpp" root0="SKIP_HIGHLIGHTING" />
|
||||
<setting file="mock:///dummy.cpp" root0="SKIP_HIGHLIGHTING" />
|
||||
<setting file="mock:///dummy.cpp" root0="SKIP_HIGHLIGHTING" />
|
||||
<setting file="mock:///dummy.cpp" root0="SKIP_HIGHLIGHTING" />
|
||||
<setting file="mock:///dummy.cpp" root0="SKIP_HIGHLIGHTING" />
|
||||
<setting file="mock:///dummy.cpp" root0="SKIP_HIGHLIGHTING" />
|
||||
<setting file="mock:///dummy.cpp" root0="SKIP_HIGHLIGHTING" />
|
||||
<setting file="mock:///dummy.cpp" root0="SKIP_HIGHLIGHTING" />
|
||||
<setting file="mock:///dummy.cpp" root0="SKIP_HIGHLIGHTING" />
|
||||
<setting file="mock:///dummy.cpp" root0="SKIP_HIGHLIGHTING" />
|
||||
<setting file="mock:///dummy.cpp" root0="SKIP_HIGHLIGHTING" />
|
||||
<setting file="mock:///dummy.cpp" root0="SKIP_HIGHLIGHTING" />
|
||||
<setting file="mock:///dummy.cpp" root0="SKIP_HIGHLIGHTING" />
|
||||
<setting file="mock:///dummy.cpp" root0="SKIP_HIGHLIGHTING" />
|
||||
<setting file="mock:///dummy.cpp" root0="SKIP_HIGHLIGHTING" />
|
||||
<setting file="mock:///dummy.cpp" root0="SKIP_HIGHLIGHTING" />
|
||||
<setting file="mock:///dummy.cpp" root0="SKIP_HIGHLIGHTING" />
|
||||
<setting file="mock:///dummy.cpp" root0="SKIP_HIGHLIGHTING" />
|
||||
<setting file="mock:///dummy.cpp" root0="SKIP_HIGHLIGHTING" />
|
||||
<setting file="mock:///dummy.cpp" root0="SKIP_HIGHLIGHTING" />
|
||||
<setting file="mock:///dummy.cpp" root0="SKIP_HIGHLIGHTING" />
|
||||
<setting file="mock:///dummy.cpp" root0="SKIP_HIGHLIGHTING" />
|
||||
<setting file="mock:///dummy.cpp" root0="SKIP_HIGHLIGHTING" />
|
||||
<setting file="mock:///dummy.cpp" root0="SKIP_HIGHLIGHTING" />
|
||||
<setting file="mock:///dummy.cpp" root0="SKIP_HIGHLIGHTING" />
|
||||
<setting file="mock:///dummy.cpp" root0="SKIP_HIGHLIGHTING" />
|
||||
<setting file="mock:///dummy.cpp" root0="SKIP_HIGHLIGHTING" />
|
||||
<setting file="mock:///dummy.cpp" root0="SKIP_HIGHLIGHTING" />
|
||||
<setting file="mock:///dummy.cpp" root0="SKIP_HIGHLIGHTING" />
|
||||
<setting file="mock:///dummy.cpp" root0="SKIP_HIGHLIGHTING" />
|
||||
<setting file="mock:///dummy.cpp" root0="SKIP_HIGHLIGHTING" />
|
||||
<setting file="mock:///dummy.cpp" root0="SKIP_HIGHLIGHTING" />
|
||||
<setting file="mock:///dummy.cpp" root0="SKIP_HIGHLIGHTING" />
|
||||
<setting file="mock:///dummy.cpp" root0="SKIP_HIGHLIGHTING" />
|
||||
<setting file="mock:///dummy.cpp" root0="SKIP_HIGHLIGHTING" />
|
||||
<setting file="mock:///dummy.cpp" root0="SKIP_HIGHLIGHTING" />
|
||||
<setting file="mock:///dummy.cpp" root0="SKIP_HIGHLIGHTING" />
|
||||
<setting file="mock:///dummy.cpp" root0="SKIP_HIGHLIGHTING" />
|
||||
<setting file="mock:///dummy.cpp" root0="SKIP_HIGHLIGHTING" />
|
||||
<setting file="mock:///dummy.cpp" root0="SKIP_HIGHLIGHTING" />
|
||||
<setting file="mock:///dummy.cpp" root0="SKIP_HIGHLIGHTING" />
|
||||
<setting file="mock:///dummy.cpp" root0="SKIP_HIGHLIGHTING" />
|
||||
<setting file="mock:///dummy.cpp" root0="SKIP_HIGHLIGHTING" />
|
||||
<setting file="mock:///dummy.cpp" root0="SKIP_HIGHLIGHTING" />
|
||||
<setting file="mock:///dummy.cpp" root0="SKIP_HIGHLIGHTING" />
|
||||
<setting file="mock:///dummy.cpp" root0="SKIP_HIGHLIGHTING" />
|
||||
<setting file="mock:///dummy.cpp" root0="SKIP_HIGHLIGHTING" />
|
||||
<setting file="mock:///dummy.cpp" root0="SKIP_HIGHLIGHTING" />
|
||||
<setting file="mock:///dummy.cpp" root0="SKIP_HIGHLIGHTING" />
|
||||
<setting file="mock:///dummy.cpp" root0="SKIP_HIGHLIGHTING" />
|
||||
<setting file="mock:///dummy.cpp" root0="SKIP_HIGHLIGHTING" />
|
||||
<setting file="mock:///dummy.cpp" root0="SKIP_HIGHLIGHTING" />
|
||||
<setting file="mock:///dummy.cpp" root0="SKIP_HIGHLIGHTING" />
|
||||
<setting file="mock:///dummy.cpp" root0="SKIP_HIGHLIGHTING" />
|
||||
<setting file="mock:///dummy.cpp" root0="SKIP_HIGHLIGHTING" />
|
||||
<setting file="mock:///dummy.cpp" root0="SKIP_HIGHLIGHTING" />
|
||||
<setting file="mock:///dummy.cpp" root0="SKIP_HIGHLIGHTING" />
|
||||
<setting file="mock:///dummy.cpp" root0="SKIP_HIGHLIGHTING" />
|
||||
<setting file="mock:///dummy.cpp" root0="SKIP_HIGHLIGHTING" />
|
||||
<setting file="mock:///dummy.cpp" root0="SKIP_HIGHLIGHTING" />
|
||||
<setting file="mock:///dummy.cpp" root0="SKIP_HIGHLIGHTING" />
|
||||
<setting file="mock:///dummy.cpp" root0="SKIP_HIGHLIGHTING" />
|
||||
<setting file="cidr-memory-view://23" root0="FORCE_HIGHLIGHTING" />
|
||||
<setting file="file://C:/Program Files (x86)/Windows Kits/10/Include/10.0.26100.0/um/d3d11.h" root0="SKIP_HIGHLIGHTING" />
|
||||
<setting file="file://$PROJECT_DIR$/enginecustom/include/Inc/VertexTypes.h" root0="SKIP_HIGHLIGHTING" />
|
||||
<setting file="file://$PROJECT_DIR$/enginecustom/include/Vulkan/Include/vulkan/vulkan_core.h" root0="SKIP_HIGHLIGHTING" />
|
||||
@@ -39,25 +169,25 @@
|
||||
<option name="hideEmptyMiddlePackages" value="true" />
|
||||
<option name="showLibraryContents" value="true" />
|
||||
</component>
|
||||
<component name="PropertiesComponent">{
|
||||
"keyToString": {
|
||||
"ASKED_SHARE_PROJECT_CONFIGURATION_FILES": "true",
|
||||
"C++ Project.enginecustom.executor": "Run",
|
||||
"C/C++ Project.enginecustom.executor": "Run",
|
||||
"RunOnceActivity.ShowReadmeOnStart": "true",
|
||||
"RunOnceActivity.git.unshallow": "true",
|
||||
"SHARE_PROJECT_CONFIGURATION_FILES": "true",
|
||||
"git-widget-placeholder": "main",
|
||||
"ignore.virus.scanning.warn.message": "true",
|
||||
"node.js.detected.package.eslint": "true",
|
||||
"node.js.detected.package.tslint": "true",
|
||||
"node.js.selected.package.eslint": "(autodetect)",
|
||||
"node.js.selected.package.tslint": "(autodetect)",
|
||||
"nodejs_package_manager_path": "npm",
|
||||
"settings.editor.selected.configurable": "preferences.build.unityPlugin",
|
||||
"vue.rearranger.settings.migration": "true"
|
||||
<component name="PropertiesComponent"><![CDATA[{
|
||||
"keyToString": {
|
||||
"ASKED_SHARE_PROJECT_CONFIGURATION_FILES": "true",
|
||||
"C++ Project.enginecustom.executor": "Run",
|
||||
"C/C++ Project.enginecustom.executor": "Debug",
|
||||
"RunOnceActivity.ShowReadmeOnStart": "true",
|
||||
"RunOnceActivity.git.unshallow": "true",
|
||||
"SHARE_PROJECT_CONFIGURATION_FILES": "true",
|
||||
"git-widget-placeholder": "main",
|
||||
"ignore.virus.scanning.warn.message": "true",
|
||||
"node.js.detected.package.eslint": "true",
|
||||
"node.js.detected.package.tslint": "true",
|
||||
"node.js.selected.package.eslint": "(autodetect)",
|
||||
"node.js.selected.package.tslint": "(autodetect)",
|
||||
"nodejs_package_manager_path": "npm",
|
||||
"settings.editor.selected.configurable": "preferences.build.unityPlugin",
|
||||
"vue.rearranger.settings.migration": "true"
|
||||
}
|
||||
}</component>
|
||||
}]]></component>
|
||||
<component name="RunManager" selected="C/C++ Project.enginecustom">
|
||||
<configuration name="KhaoticDemo" type="CppProject" factoryName="C++ Project">
|
||||
<configuration_1 setup="1">
|
||||
@@ -179,7 +309,11 @@
|
||||
<workItem from="1746538260893" duration="5781000" />
|
||||
<workItem from="1746546014271" duration="1814000" />
|
||||
<workItem from="1746619988287" duration="12282000" />
|
||||
<workItem from="1746711806997" duration="6619000" />
|
||||
<workItem from="1746711806997" duration="6736000" />
|
||||
<workItem from="1746719840054" duration="991000" />
|
||||
<workItem from="1746795732153" duration="33000" />
|
||||
<workItem from="1746795828588" duration="592000" />
|
||||
<workItem from="1747049871967" duration="8976000" />
|
||||
</task>
|
||||
<task id="LOCAL-00001" summary="Minor update - viewport window tweak">
|
||||
<option name="closed" value="true" />
|
||||
|
@@ -2,13 +2,13 @@
|
||||
|
||||
Khaotic Engine Reborn reprend comme base le moteur Khaotic Engine pour lui ajouter plus de fonctionalité.
|
||||
|
||||
Ce moteur est basé sur **DirectX11** utilise **ImGui** avec une couche d'abstraction pour permetre son usage avec d'autres API.
|
||||
Ce moteur est basé sur **DirectX11** et utilise **ImGui** pour son interface graphique.
|
||||
|
||||
---
|
||||
|
||||
Khaotic Engine is a rendering engine made in **C++** by a small team with the aim of learning how to use rendering APIs (OpenGL, DirectX 11/12 and Vulkan).
|
||||
|
||||
This **DirectX11** based engine uses **ImGui** with an abstraction layer to enable its use with other APIs.
|
||||
This **DirectX11** based engine uses **ImGui** for the user interface.
|
||||
|
||||
## Installation
|
||||
|
||||
|
@@ -4,20 +4,20 @@ Size=400,400
|
||||
Collapsed=0
|
||||
|
||||
[Window][Khaotic Engine]
|
||||
Pos=1745,19
|
||||
Size=303,1110
|
||||
Pos=1281,19
|
||||
Size=303,842
|
||||
Collapsed=0
|
||||
DockId=0x00000005,0
|
||||
|
||||
[Window][Objects]
|
||||
Pos=0,19
|
||||
Size=281,307
|
||||
Size=281,615
|
||||
Collapsed=0
|
||||
DockId=0x00000007,0
|
||||
|
||||
[Window][Terrain]
|
||||
Pos=0,19
|
||||
Size=281,883
|
||||
Pos=0,328
|
||||
Size=281,306
|
||||
Collapsed=0
|
||||
DockId=0x00000008,0
|
||||
|
||||
@@ -35,7 +35,7 @@ DockId=0x00000001,2
|
||||
|
||||
[Window][Engine Settings]
|
||||
Pos=0,19
|
||||
Size=281,307
|
||||
Size=281,615
|
||||
Collapsed=0
|
||||
DockId=0x00000007,1
|
||||
|
||||
@@ -51,7 +51,7 @@ DockId=0x00000007,0
|
||||
|
||||
[Window][DockSpace]
|
||||
Pos=0,0
|
||||
Size=2048,1129
|
||||
Size=1584,861
|
||||
Collapsed=0
|
||||
|
||||
[Window][Add Object]
|
||||
@@ -66,14 +66,14 @@ Collapsed=0
|
||||
DockId=0x0000000C,0
|
||||
|
||||
[Window][Log Window]
|
||||
Pos=652,636
|
||||
Size=649,225
|
||||
Pos=641,636
|
||||
Size=638,225
|
||||
Collapsed=0
|
||||
DockId=0x00000006,0
|
||||
|
||||
[Window][Render Stats]
|
||||
Pos=0,904
|
||||
Size=1743,225
|
||||
Pos=0,636
|
||||
Size=639,225
|
||||
Collapsed=0
|
||||
DockId=0x00000004,0
|
||||
|
||||
@@ -81,7 +81,7 @@ DockId=0x00000004,0
|
||||
DockSpace ID=0xC0DFADC4 Pos=8,27 Size=1568,826 Split=X
|
||||
DockNode ID=0x00000001 Parent=0xC0DFADC4 SizeRef=330,1094 Selected=0x393905AB
|
||||
DockNode ID=0x00000003 Parent=0xC0DFADC4 SizeRef=1700,1094 CentralNode=1
|
||||
DockSpace ID=0xCCBD8CF7 Window=0x3DA2F1DE Pos=0,19 Size=2048,1110 Split=X
|
||||
DockSpace ID=0xCCBD8CF7 Window=0x3DA2F1DE Pos=0,19 Size=1584,842 Split=X
|
||||
DockNode ID=0x00000002 Parent=0xCCBD8CF7 SizeRef=1743,826 Split=Y
|
||||
DockNode ID=0x0000000A Parent=0x00000002 SizeRef=1568,599 Split=X
|
||||
DockNode ID=0x00000009 Parent=0x0000000A SizeRef=281,974 Split=Y Selected=0x031DC75C
|
||||
|
@@ -201,7 +201,8 @@ protected:
|
||||
|
||||
public:
|
||||
ModelClass();
|
||||
ModelClass(const ModelClass&);
|
||||
ModelClass(const ModelClass&) = delete;
|
||||
ModelClass& operator=(const ModelClass&) = delete;
|
||||
~ModelClass();
|
||||
|
||||
//bool Initialize(ID3D11Device*, ID3D11DeviceContext*, char*, std::vector<ID3D11ShaderResourceView*>);
|
||||
|
@@ -32,6 +32,9 @@ public:
|
||||
Object();
|
||||
~Object();
|
||||
|
||||
Object(const Object&) = delete;
|
||||
Object& operator=(const Object&) = delete;
|
||||
|
||||
void SetScaleMatrix(XMMATRIX scaleMatrix);
|
||||
void SetRotateMatrix(XMMATRIX rotateMatrix);
|
||||
void SetTranslateMatrix(XMMATRIX translateMatrix);
|
||||
@@ -50,7 +53,6 @@ public:
|
||||
|
||||
XMVECTOR GetPosition();
|
||||
XMVECTOR GetRotation();
|
||||
void Render(ID3D11DeviceContext* deviceContext);
|
||||
XMVECTOR GetScale();
|
||||
|
||||
void SetVelocity(XMVECTOR);
|
||||
@@ -149,9 +151,4 @@ private:
|
||||
float m_initialStretch = 0.0f;
|
||||
float m_springConstant = 10.0f;
|
||||
|
||||
bool m_instancingEnabled;
|
||||
int m_instanceCount;
|
||||
ID3D11Buffer* m_instanceBuffer;
|
||||
std::vector<XMMATRIX> m_instanceTransforms;
|
||||
|
||||
};
|
||||
|
@@ -1286,7 +1286,7 @@ void ApplicationClass::AddKobject(std::wstring& filepath)
|
||||
string filename = p.stem().string();
|
||||
|
||||
size_t convertedChars = 0;
|
||||
wcstombs_s(&convertedChars, modelFilename, sizeof(modelFilename), filepath.c_str(), _TRUNCATE);
|
||||
(void)wcstombs_s(&convertedChars, modelFilename, sizeof(modelFilename), filepath.c_str(), _TRUNCATE);
|
||||
|
||||
filesystem::current_path(m_WFolder);
|
||||
|
||||
@@ -1672,7 +1672,7 @@ bool ApplicationClass::RenderPass(const std::vector<std::reference_wrapper<std::
|
||||
|
||||
int renderCount = 0;
|
||||
|
||||
ConstructFrustum();
|
||||
//ConstructFrustum();
|
||||
|
||||
for (const auto& RenderQueue : RenderQueues)
|
||||
{
|
||||
@@ -1697,7 +1697,6 @@ bool ApplicationClass::RenderPass(const std::vector<std::reference_wrapper<std::
|
||||
object->UpdatePosition(m_Timer->GetTime());
|
||||
}
|
||||
|
||||
|
||||
if (!object->IsVisible())
|
||||
{
|
||||
continue;
|
||||
|
@@ -644,23 +644,6 @@ void imguiManager::WidgetTerrainWindow(ApplicationClass* app)
|
||||
|
||||
ImGui::Separator();
|
||||
|
||||
// int input area for the number of cubes
|
||||
static int numCubes = 10;
|
||||
ImGui::InputInt("Number of Cubes", &numCubes);
|
||||
if (numCubes < 1)
|
||||
{
|
||||
numCubes = 1;
|
||||
}
|
||||
|
||||
ImGui::Separator();
|
||||
|
||||
if (ImGui::Button("Generate Big Cube Terrain"))
|
||||
{
|
||||
app->CreateBigCube(numCubes);
|
||||
}
|
||||
|
||||
ImGui::Separator();
|
||||
|
||||
if (ImGui::Button("Delete All Terrain Cubes"))
|
||||
{
|
||||
app->DeleteTerrain();
|
||||
|
@@ -6,16 +6,23 @@ ModelClass::ModelClass()
|
||||
m_vertexBuffer = 0;
|
||||
m_indexBuffer = 0;
|
||||
m_model = 0;
|
||||
m_vertexCount = 0;
|
||||
m_indexCount = 0;
|
||||
m_Textures.diffuse.clear();
|
||||
m_Textures.normal.clear();
|
||||
m_Textures.specular.clear();
|
||||
m_Textures.alpha.clear();
|
||||
m_Textures.diffusePaths.clear();
|
||||
m_Textures.normalPaths.clear();
|
||||
m_Textures.specularPaths.clear();
|
||||
m_Textures.alphaPaths.clear();
|
||||
}
|
||||
|
||||
|
||||
ModelClass::ModelClass(const ModelClass& other)
|
||||
{
|
||||
}
|
||||
|
||||
|
||||
ModelClass::~ModelClass()
|
||||
{
|
||||
|
||||
// Destructor
|
||||
Shutdown();
|
||||
}
|
||||
|
||||
bool ModelClass::Initialize(ID3D11Device* device, ID3D11DeviceContext* deviceContext, char* modelFilename, const TextureContainer& textures) {
|
||||
@@ -240,65 +247,88 @@ bool ModelClass::LoadModel(char* filename)
|
||||
|
||||
bool ModelClass::LoadObjModel(char* filename)
|
||||
{
|
||||
|
||||
std::string line;
|
||||
std::ifstream fin(filename);
|
||||
|
||||
// If it could not open the file then exit.
|
||||
// Lecture optimis<69>e du fichier en mode binaire
|
||||
std::ifstream fin(filename, std::ios::in | std::ios::binary);
|
||||
if (!fin)
|
||||
{
|
||||
Logger::Get().Log("Failed to open model file", __FILE__, __LINE__, Logger::LogLevel::Error);
|
||||
Logger::Get().Log("<EFBFBD>chec d'ouverture du fichier mod<6F>le", __FILE__, __LINE__, Logger::LogLevel::Error);
|
||||
return false;
|
||||
}
|
||||
|
||||
// Lecture du fichier entier d'un coup (<28>vite la lecture ligne par ligne)
|
||||
fin.seekg(0, std::ios::end);
|
||||
const size_t fileSize = fin.tellg();
|
||||
fin.seekg(0, std::ios::beg);
|
||||
|
||||
std::string fileContent;
|
||||
fileContent.resize(fileSize);
|
||||
fin.read(&fileContent[0], fileSize);
|
||||
fin.close();
|
||||
|
||||
// Pr<50>-allocation des vecteurs (<28>vite les r<>allocations)
|
||||
const size_t estimatedVertices = fileSize / 150;
|
||||
std::vector<XMFLOAT3> temp_positions;
|
||||
std::vector<XMFLOAT2> temp_texcoords;
|
||||
std::vector<XMFLOAT3> temp_normals;
|
||||
std::vector<ModelType> temp_model;
|
||||
|
||||
// Read the file line by line.
|
||||
while (std::getline(fin, line))
|
||||
{
|
||||
std::istringstream iss(line);
|
||||
std::string type;
|
||||
iss >> type;
|
||||
temp_positions.reserve(estimatedVertices);
|
||||
temp_texcoords.reserve(estimatedVertices);
|
||||
temp_normals.reserve(estimatedVertices);
|
||||
temp_model.reserve(estimatedVertices * 3);
|
||||
|
||||
if (type == "v") // Vertex position
|
||||
// Analyse du contenu
|
||||
std::istringstream iss(fileContent);
|
||||
std::string line;
|
||||
|
||||
while (std::getline(iss, line))
|
||||
{
|
||||
if (line.empty() || line[0] == '#') continue;
|
||||
|
||||
// Analyse plus rapide bas<61>e sur le premier caract<63>re
|
||||
if (line[0] == 'v')
|
||||
{
|
||||
if (line[1] == ' ') // Position de sommet
|
||||
{
|
||||
XMFLOAT3 pos;
|
||||
iss >> pos.x >> pos.y >> pos.z;
|
||||
sscanf_s(line.c_str() + 2, "%f %f %f", &pos.x, &pos.y, &pos.z);
|
||||
temp_positions.push_back(pos);
|
||||
}
|
||||
else if (type == "vt") // Texture coordinate
|
||||
else if (line[1] == 't') // Coordonn<EFBFBD>es de texture
|
||||
{
|
||||
XMFLOAT2 tex;
|
||||
iss >> tex.x >> tex.y;
|
||||
sscanf_s(line.c_str() + 3, "%f %f", &tex.x, &tex.y);
|
||||
temp_texcoords.push_back(tex);
|
||||
}
|
||||
else if (type == "vn") // Vertex normal
|
||||
else if (line[1] == 'n') // Normales
|
||||
{
|
||||
XMFLOAT3 norm;
|
||||
iss >> norm.x >> norm.y >> norm.z;
|
||||
sscanf_s(line.c_str() + 3, "%f %f %f", &norm.x, &norm.y, &norm.z);
|
||||
temp_normals.push_back(norm);
|
||||
}
|
||||
else if (type == "f") // Face
|
||||
}
|
||||
else if (line[0] == 'f')
|
||||
{
|
||||
int posIndex[3], texIndex[3], normIndex[3];
|
||||
char slash; // To skip the slashes '/' in the .obj file format
|
||||
for (int i = 0; i < 3; i++) // Each face in .obj format has 3 vertices
|
||||
{
|
||||
iss >> posIndex[i] >> slash >> texIndex[i] >> slash >> normIndex[i];
|
||||
const char* linePtr = line.c_str() + 2; // Sauter "f "
|
||||
|
||||
for (int i = 0; i < 3; i++)
|
||||
{
|
||||
// Analyse rapide du format v/vt/vn
|
||||
sscanf_s(linePtr, "%d/%d/%d", &posIndex[i], &texIndex[i], &normIndex[i]);
|
||||
|
||||
// Avancer au prochain ensemble d'indices
|
||||
while (*linePtr && *linePtr != ' ') linePtr++;
|
||||
while (*linePtr == ' ') linePtr++;
|
||||
|
||||
// Handle negative indices
|
||||
if (posIndex[i] < 0) posIndex[i] += temp_positions.size() + 1;
|
||||
if (texIndex[i] < 0) texIndex[i] += temp_texcoords.size() + 1;
|
||||
if (normIndex[i] < 0) normIndex[i] += temp_normals.size() + 1;
|
||||
}
|
||||
|
||||
// .obj indices start from 1, not 0
|
||||
for (int i = 0; i < 3; i++)
|
||||
{
|
||||
ModelType vertex;
|
||||
ModelType vertex{};
|
||||
vertex.x = temp_positions[posIndex[i] - 1].x;
|
||||
vertex.y = temp_positions[posIndex[i] - 1].y;
|
||||
vertex.z = temp_positions[posIndex[i] - 1].z;
|
||||
@@ -312,22 +342,15 @@ bool ModelClass::LoadObjModel(char* filename)
|
||||
}
|
||||
}
|
||||
|
||||
// Allocation et copie efficace du mod<6F>le final
|
||||
m_vertexCount = temp_model.size();
|
||||
m_indexCount = temp_model.size();
|
||||
|
||||
// Create the model using the vertex count that was read in.
|
||||
m_model = new ModelType[m_vertexCount];
|
||||
for (int i = 0; i < m_vertexCount; i++)
|
||||
{
|
||||
m_model[i] = temp_model[i];
|
||||
}
|
||||
|
||||
fin.close();
|
||||
std::memcpy(m_model, temp_model.data(), m_vertexCount * sizeof(ModelType));
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
bool ModelClass::LoadTxtModel(char* filename)
|
||||
{
|
||||
ifstream fin;
|
||||
|
@@ -18,19 +18,10 @@ Object::Object()// Initialize the reference here
|
||||
m_isGrounded = false;
|
||||
m_id = NULL;
|
||||
m_boundingRadius = 1.0f;
|
||||
m_instancingEnabled = false;
|
||||
m_instanceCount = 0;
|
||||
m_instanceBuffer = nullptr;
|
||||
}
|
||||
|
||||
Object::~Object()
|
||||
{
|
||||
// Lib<69>rer le buffer d'instances
|
||||
if (m_instanceBuffer)
|
||||
{
|
||||
m_instanceBuffer->Release();
|
||||
m_instanceBuffer = nullptr;
|
||||
}
|
||||
}
|
||||
|
||||
void Object::SetScaleMatrix(XMMATRIX scaleMatrix)
|
||||
@@ -100,45 +91,6 @@ XMVECTOR Object::GetRotation()
|
||||
return XMVectorSet(rotationX, rotationY, rotationZ, 0.0f);
|
||||
}
|
||||
|
||||
void Object::Render(ID3D11DeviceContext* deviceContext)
|
||||
{
|
||||
unsigned int strides[2];
|
||||
unsigned int offsets[2];
|
||||
ID3D11Buffer* bufferPointers[2];
|
||||
|
||||
// Configurer les vertex et index buffers
|
||||
strides[0] = sizeof(VertexType);
|
||||
offsets[0] = 0;
|
||||
bufferPointers[0] = m_vertexBuffer;
|
||||
|
||||
// Si l'instanciation est activ<69>e
|
||||
if (m_instancingEnabled && m_instanceBuffer)
|
||||
{
|
||||
// Configurer le buffer d'instances
|
||||
strides[1] = sizeof(XMMATRIX);
|
||||
offsets[1] = 0;
|
||||
bufferPointers[1] = m_instanceBuffer;
|
||||
|
||||
// D<>finir les deux buffers (vertex et instance) sur le pipeline
|
||||
deviceContext->IASetVertexBuffers(0, 2, bufferPointers, strides, offsets);
|
||||
deviceContext->IASetIndexBuffer(m_indexBuffer, DXGI_FORMAT_R32_UINT, 0);
|
||||
deviceContext->IASetPrimitiveTopology(D3D11_PRIMITIVE_TOPOLOGY_TRIANGLELIST);
|
||||
|
||||
// Dessiner les instances
|
||||
deviceContext->DrawIndexedInstanced(m_indexCount, m_instanceCount, 0, 0, 0);
|
||||
}
|
||||
else
|
||||
{
|
||||
// Rendu normal sans instanciation
|
||||
deviceContext->IASetVertexBuffers(0, 1, bufferPointers, strides, offsets);
|
||||
deviceContext->IASetIndexBuffer(m_indexBuffer, DXGI_FORMAT_R32_UINT, 0);
|
||||
deviceContext->IASetPrimitiveTopology(D3D11_PRIMITIVE_TOPOLOGY_TRIANGLELIST);
|
||||
|
||||
// Dessiner l'objet normalement
|
||||
deviceContext->DrawIndexed(m_indexCount, 0, 0);
|
||||
}
|
||||
}
|
||||
|
||||
XMVECTOR Object::GetScale()
|
||||
{
|
||||
XMFLOAT4X4 matrix;
|
||||
@@ -436,65 +388,3 @@ bool Object::LoadTexturesFromPath(std::vector<std::wstring>& texturePaths, Textu
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
bool Object::SetupInstancing(ID3D11Device* device, const std::vector<XMMATRIX>& instanceTransforms)
|
||||
{
|
||||
// Stocker les matrices de transformation
|
||||
m_instanceTransforms = instanceTransforms;
|
||||
m_instanceCount = static_cast<int>(instanceTransforms.size());
|
||||
|
||||
// Lib<69>rer le buffer d'instances existant si n<>cessaire
|
||||
if (m_instanceBuffer)
|
||||
{
|
||||
m_instanceBuffer->Release();
|
||||
m_instanceBuffer = nullptr;
|
||||
}
|
||||
|
||||
// Cr<43>er le buffer d'instances
|
||||
D3D11_BUFFER_DESC instanceBufferDesc;
|
||||
ZeroMemory(&instanceBufferDesc, sizeof(instanceBufferDesc));
|
||||
instanceBufferDesc.Usage = D3D11_USAGE_DYNAMIC;
|
||||
instanceBufferDesc.ByteWidth = sizeof(XMMATRIX) * m_instanceCount;
|
||||
instanceBufferDesc.BindFlags = D3D11_BIND_VERTEX_BUFFER;
|
||||
instanceBufferDesc.CPUAccessFlags = D3D11_CPU_ACCESS_WRITE;
|
||||
instanceBufferDesc.MiscFlags = 0;
|
||||
instanceBufferDesc.StructureByteStride = 0;
|
||||
|
||||
D3D11_SUBRESOURCE_DATA instanceData;
|
||||
ZeroMemory(&instanceData, sizeof(instanceData));
|
||||
instanceData.pSysMem = instanceTransforms.data();
|
||||
|
||||
HRESULT result = device->CreateBuffer(&instanceBufferDesc, &instanceData, &m_instanceBuffer);
|
||||
if (FAILED(result))
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
void Object::EnableInstancing(bool enabled)
|
||||
{
|
||||
m_instancingEnabled = enabled;
|
||||
}
|
||||
|
||||
void Object::SetInstanceCount(int count)
|
||||
{
|
||||
m_instanceCount = count;
|
||||
}
|
||||
|
||||
// Ajoutez <20>galement ces m<>thodes pour acc<63>der aux donn<6E>es d'instanciation
|
||||
bool Object::IsInstancingEnabled() const
|
||||
{
|
||||
return m_instancingEnabled;
|
||||
}
|
||||
|
||||
int Object::GetInstanceCount() const
|
||||
{
|
||||
return m_instanceCount;
|
||||
}
|
||||
|
||||
ID3D11Buffer* Object::GetInstanceBuffer() const
|
||||
{
|
||||
return m_instanceBuffer;
|
||||
}
|
Reference in New Issue
Block a user