Git Product home page Git Product logo

donut's People

Contributors

agreenennv avatar apanteleev avatar blurrylight avatar calhsu-nvidia avatar huntlier avatar johnatnvidia avatar manuelknvda avatar popperelay avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

donut's Issues

Meshlet sample with real scene data

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.

dxc dependency

Is it possible to remove the dependency on dxc and rely on something free and open source?

Non-Uniform Scale Transofrmation Support

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)).

Getting multiple compilation errors and failed assertions from `donut` submodule

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	

DEFINE_INPLACE_OPERATORS in vector.h return non-reference value

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?

git .modules

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?

gitsubmoduleupdateinitrecursive

shadowFalloffDistance is not used in the shader

Hello,

Could you explain in the code how works the method EvaluateShadowPoisson in shadows.hlsli or provide the source of the algorithm ?
For example

  • I do not understand how is built the fade value.
  • The parameter shadowFalloffDistance is not used in this algorithm.

Any document avaliable?

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?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.