Got a bit further

This commit is contained in:
Dynamitos
2023-11-05 11:47:22 +01:00
parent 77eb92838c
commit d35f7acddc
11 changed files with 32 additions and 20 deletions
+15
View File
@@ -0,0 +1,15 @@
{
"name": "TerrainMaterial",
"params": {
},
"code": [
{
"exp": "BRDF",
"profile": "BlinnPhong",
"values": {
"baseColor": "float3(0, 1, 0)",
"normal": "float3(0, 0, 1)"
}
}
]
}
+1 -1
View File
@@ -17,7 +17,7 @@ MaterialLoader::MaterialLoader(Gfx::PGraphics graphics)
{
OMaterialAsset placeholderAsset = new MaterialAsset();
import(MaterialImportArgs{
.filePath = std::filesystem::absolute("./shaders/Placeholder.asset"),
.filePath = std::filesystem::absolute("./shaders/Placeholder.json"),
.importPath = "",
}, placeholderAsset);
AssetRegistry::get().assetRoot->materials[""] = std::move(placeholderAsset);
+1
View File
@@ -257,6 +257,7 @@ void MeshLoader::loadGlobalMeshes(const aiScene* scene, const Array<PMaterialAss
globalMeshes[meshIndex]->id = id;
globalMeshes[meshIndex]->referencedMaterial = materials[mesh->mMaterialIndex]->getMaterial()->instantiate();
globalMeshes[meshIndex]->meshlets = std::move(meshlets);
globalMeshes[meshIndex]->vertexCount = mesh->mNumVertices;
}
}
+3
View File
@@ -11,6 +11,7 @@
#include "Asset/MaterialLoader.h"
#include "Asset/FontLoader.h"
#include "Asset/AssetImporter.h"
#include "Graphics/StaticMeshVertexData.h"
using namespace Seele;
using namespace Seele::Editor;
@@ -29,6 +30,8 @@ int main()
GraphicsInitializer initializer;
graphics->init(initializer);
StaticMeshVertexData* vd = StaticMeshVertexData::getInstance();
vd->init(graphics);
PWindowManager windowManager = new WindowManager();
AssetRegistry::init(std::string("C:/Users/Dynamitos/TrackClear/Assets"), graphics);
AssetImporter::init(graphics, AssetRegistry::getInstance());
+1 -1
View File
@@ -25,7 +25,7 @@ struct GraphicsInitializer
, engineName("SeeleEngine")
, windowLayoutFile(nullptr)
, layers{"VK_LAYER_KHRONOS_validation"}
, instanceExtensions{"VK_KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME"}
, instanceExtensions{}
, deviceExtensions{"VK_KHR_swapchain"}
, windowHandle(nullptr)
{
+5 -5
View File
@@ -24,7 +24,7 @@ StaticMeshVertexData* StaticMeshVertexData::getInstance()
void StaticMeshVertexData::loadPositions(MeshId id, const Array<Vector>& data)
{
uint64 offset = meshOffsets[id];
assert(offset + data.size() < head);
assert(offset + data.size() <= head);
std::memcpy(positionData.data() + offset, data.data(), data.size() * sizeof(Vector));
dirty = true;
}
@@ -32,7 +32,7 @@ void StaticMeshVertexData::loadPositions(MeshId id, const Array<Vector>& data)
void StaticMeshVertexData::loadTexCoords(MeshId id, const Array<Vector2>& data)
{
uint64 offset = meshOffsets[id];
assert(offset + data.size() < head);
assert(offset + data.size() <= head);
std::memcpy(texCoordsData.data() + offset, data.data(), data.size() * sizeof(Vector2));
dirty = true;
}
@@ -40,7 +40,7 @@ void StaticMeshVertexData::loadTexCoords(MeshId id, const Array<Vector2>& data)
void StaticMeshVertexData::loadNormals(MeshId id, const Array<Vector>& data)
{
uint64 offset = meshOffsets[id];
assert(offset + data.size() < head);
assert(offset + data.size() <= head);
std::memcpy(normalData.data() + offset, data.data(), data.size() * sizeof(Vector));
dirty = true;
}
@@ -48,7 +48,7 @@ void StaticMeshVertexData::loadNormals(MeshId id, const Array<Vector>& data)
void StaticMeshVertexData::loadTangents(MeshId id, const Array<Vector>& data)
{
uint64 offset = meshOffsets[id];
assert(offset + data.size() < head);
assert(offset + data.size() <= head);
std::memcpy(tangentData.data() + offset, data.data(), data.size() * sizeof(Vector));
dirty = true;
}
@@ -56,7 +56,7 @@ void StaticMeshVertexData::loadTangents(MeshId id, const Array<Vector>& data)
void StaticMeshVertexData::loadBiTangents(MeshId id, const Array<Vector>& data)
{
uint64 offset = meshOffsets[id];
assert(offset + data.size() < head);
assert(offset + data.size() <= head);
std::memcpy(biTangentData.data() + offset, data.data(), data.size() * sizeof(Vector));
dirty = true;
}
+1 -1
View File
@@ -392,7 +392,7 @@ void* ShaderBuffer::lock(bool writeOnly)
{
return dedicatedStagingBuffer->getMappedPointer();
}
return ShaderBuffer::lock(writeOnly);
return Vulkan::Buffer::lock(writeOnly);
}
void ShaderBuffer::unlock()
+3 -5
View File
@@ -445,7 +445,7 @@ void Graphics::pickPhysicalDevice()
{
uint32 currentRating = 0;
vkGetPhysicalDeviceProperties(dev, &props);
vkGetPhysicalDeviceFeatures2(dev, &features);
vkGetPhysicalDeviceFeatures(dev, &features);
if (props.deviceType == VK_PHYSICAL_DEVICE_TYPE_DISCRETE_GPU)
{
std::cout << "found dedicated gpu " << props.deviceName << std::endl;
@@ -465,7 +465,7 @@ void Graphics::pickPhysicalDevice()
}
physicalDevice = bestDevice;
vkGetPhysicalDeviceProperties(physicalDevice, &props);
vkGetPhysicalDeviceFeatures2(physicalDevice, &features);
vkGetPhysicalDeviceFeatures(physicalDevice, &features);
}
void Graphics::createDevice(GraphicsInitializer initializer)
@@ -565,7 +565,7 @@ void Graphics::createDevice(GraphicsInitializer initializer)
VkDeviceCreateInfo deviceInfo = init::DeviceCreateInfo(
queueInfos.data(),
(uint32)queueInfos.size(),
&features);
nullptr);
VkPhysicalDeviceDescriptorIndexingFeatures descriptorIndexing = {
.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_FEATURES,
@@ -594,8 +594,6 @@ void Graphics::createDevice(GraphicsInitializer initializer)
{
descriptorIndexing.pNext = &enabledMeshShaderFeatures;
initializer.deviceExtensions.add("VK_EXT_mesh_shader");
initializer.deviceExtensions.add("VK_KHR_SPIRV_1_4_EXTENSION_NAME");
initializer.deviceExtensions.add("VK_KHR_SHADER_FLOAT_CONTROLS_EXTENSION_NAME");
}
deviceInfo.enabledExtensionCount = (uint32)initializer.deviceExtensions.size();
deviceInfo.ppEnabledExtensionNames = initializer.deviceExtensions.data();
+1 -1
View File
@@ -99,7 +99,7 @@ protected:
thread_local static OCommandBufferManager transferCommands;
thread_local static OCommandBufferManager dedicatedTransferCommands;
VkPhysicalDeviceProperties props;
VkPhysicalDeviceFeatures2 features;
VkPhysicalDeviceFeatures features;
VkDebugReportCallbackEXT callback;
std::mutex viewportLock;
Array<PViewport> viewports;
-5
View File
@@ -51,11 +51,6 @@ VkDeviceCreateInfo DeviceCreateInfo(
uint32_t queueCount,
VkPhysicalDeviceFeatures *features);
VkDeviceCreateInfo DeviceCreateInfo(
VkDeviceQueueCreateInfo* queueInfos,
uint32_t queueCount,
VkPhysicalDeviceFeatures2* features);
VkSwapchainCreateInfoKHR SwapchainCreateInfo(
VkSurfaceKHR surface,
uint32_t minImageCount,
+1 -1
View File
@@ -30,7 +30,7 @@ MaterialInstance::MaterialInstance(uint64 id,
parameters.reserve(params.size());
for (int i = 0; i < params.size(); ++i)
{
Serialization::save(buffer, params[i]);
Serialization::save(buffer, expressions[params[i]]);
buffer.rewind();
OShaderParameter param;
Serialization::load(buffer, param);