nvidiagameworks / donut Goto Github PK
View Code? Open in Web Editor NEWLicense: MIT License
License: MIT License
Just a friendly note. I may be misusing git but it appears that submodules will not update unless you go the module folder and issue a checkout command. For example, if I clone the donut repo, I use the following commands
git clone --recursive https://github.com/NVIDIAGameWorks/donut
CD donut
git submodule update --init --recursive
CD nvrhi
git checkout main
CD ..\thirdparty\imgui
git checkout master
CD ..\lz4
git checkout release
Can someone confirm that the head is detached?
Also, how I should be updating the submodules with git?
Are those in the roadmap?
Is it possible to remove the dependency on dxc and rely on something free and open source?
donut/include/donut/core/vfs/VFS.h
Line 63 in c67172a
It returns True
when it is actually NOT empty, while other similar functions like dm::box3::empty()
return True
when empty or invalid.
I found it is very hard for me to read the source code for using this engine. I referred to the donut example but can still hardly get the point what purposes those classes and functions are designed for. So do you have any document or website describing the APIs?
Hi Nvidia folks, I think that the current meshlet sample is a bit too minimalist, and I think that it would be lovely to see a meshlet sample where we can load a real scene into the application, compute cluster meshlets for each mesh at runtime so that we can apply GPU culling to it.
Cheers.
in gbuffer_vs.hlsl:
o_vtx.normal = mul(instanceMatrix, float4(i_vtx.normal, 0)).xyz;
o_vtx.tangent.xyz = mul(instanceMatrix, float4(i_vtx.tangent.xyz, 0)).xyz;
o_vtx.tangent.w = i_vtx.tangent.w;
need to use transpose(inverse(instanceMatrix)).
Hello,
Could you explain in the code how works the method EvaluateShadowPoisson
in shadows.hlsli or provide the source of the algorithm ?
For example
fade
value.shadowFalloffDistance
is not used in this algorithm.in matrix.h, return matrix<T,rows,cols> &, however in vector.h
template<typename T> vector<T, 3> operator op (vector<T, 3>& a, const vector<T, 3>& b) \
{ a.x op b.x; a.y op b.y; a.z op b.z; return a; } \
return a will return a copyed value, is it a mistake?
I am creating a project over the donut framework, but I am not able to configure the project correctly. Here is my CMakeLists.txt:
cmake_minimum_required(VERSION 3.10)
# Project Name: CirrusRT
project(CirrusRT)
set(CMAKE_CXX_STANDARD 17)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
set(CMAKE_CXX_EXTENSIONS ON)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /W3 /MP")
set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} /D_ITERATOR_DEBUG_LEVEL=1")
# Link directory for Assimp
link_directories(third-party/assimp/)
set(NVRHI_WITH_VULKAN ON)
add_subdirectory(third-party/donut)
include_directories(
include/
./third-party/donut/include/
)
# Source Files glob for LibCirrusRT
file(GLOB_RECURSE SOURCES "src/*.cpp" "include/*.h")
# Adding CirrusRT.exe executable
add_executable(${PROJECT_NAME} WIN32 ${SOURCES})
# Linking assimp-vc143-mt.lib
target_link_libraries(${PROJECT_NAME} donut_core donut_engine donut_app assimp-vc143-mt)
# Copying assimp-vc-143-mt.dll from third-party/assimp/ to build/
configure_file(third-party/assimp/assimp-vc143-mt.dll ${CMAKE_CURRENT_BINARY_DIR}/assimp-vc143-mt.dll COPYONLY)
# Setting CirrusRT.exe's runtime output directory to CMake's current binary directory
set_target_properties(${PROJECT_NAME} PROPERTIES RUNTIME_OUTPUT_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR})
The project structure is as follows:
./
|_CMakeLists.txt
|_include/
| |_*.h
|_src/
| |_*.cpp
|_third-party/
| |_donut/
While building the generated solution, I am getting many errors leading to a failed build. Some of them are listed below:
Severity Code Description Project File Line Suppression State
Error C2440 '<function-style-cast>': cannot convert from 'vk::PipelineLayout' to 'nvrhi::Object' nvrhi_vk C:\Projects\cirrus-rt\third-party\donut\nvrhi\src\vulkan\vulkan-compute.cpp 141
Severity Code Description Project File Line Suppression State
Error C2664 'void nvrhi::vulkan::VulkanContext::nameVKObject(const void *,vk::DebugReportObjectTypeEXT,const char *) const': cannot convert argument 1 from 'VkBuffer' to 'const void *' nvrhi_vk C:\Projects\cirrus-rt\third-party\donut\nvrhi\src\vulkan\vulkan-buffer.cpp 132
Severity Code Description Project File Line Suppression State
Error C2607 static assertion failed (compiling source file C:\Projects\cirrus-rt\third-party\donut\src\core\chunk\chunkWriter.cpp) donut_core C:\Projects\cirrus-rt\third-party\donut\include\donut\core\chunk\chunk.h 64
Severity Code Description Project File Line Suppression State
Error C2664 'void AppendBufferRange(nvrhi::BufferRange &,size_t,uint64_t &)': cannot convert argument 3 from 'size_t' to 'uint64_t &' donut_engine C:\Projects\cirrus-rt\third-party\donut\src\engine\Scene.cpp 1035
Severity Code Description Project File Line Suppression State
Error C2065 'DXC_ARG_OPTIMIZATION_LEVEL2': undeclared identifier ShaderMake (ShaderMake\ShaderMake) C:\Projects\cirrus-rt\third-party\donut\ShaderMake\src\ShaderMake.cpp 883
Severity Code Description Project File Line Suppression State
Error C2672 'std::min': no matching overloaded function found nvrhi_d3d12 C:\Projects\cirrus-rt\third-party\donut\nvrhi\src\d3d12\d3d12-texture.cpp 1183
can not find
#include <donut/core/vfs/SQLiteFS.h>
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.