* Started reworking the scene rendering to sample Use glTF instead of ASSIMP, per-material pipelines, material loading, etc. * Visibility toggle for scene nodes * Fixed lighting, updated GLSL and HLSL shaders * Renamed sample * Code-Cleanup, comments, validation fixes * Android build * Started on tutorial for glTF scene rendering sample * Minor code cleanup * Adding new chapters to the tutorial for glTF scene rendering sample * Added info on normal map shader bindings, spelling * Added drawing chapter * Getter for texture descriptors Makes code a easier to read * Renamed glTF scene sample * Add markdown files to projects * Updated readme, separate chapter for glTF samples * Comments * Removed unused screenshot |
||
|---|---|---|
| .. | ||
| base | ||
| bloom | ||
| computecloth | ||
| computecullandlod | ||
| computeheadless | ||
| computenbody | ||
| computeparticles | ||
| computeraytracing | ||
| computeshader | ||
| conditionalrender | ||
| conservativeraster | ||
| debugmarker | ||
| deferred | ||
| deferredmultisampling | ||
| deferredshadows | ||
| descriptorsets | ||
| displacement | ||
| distancefieldfonts | ||
| dynamicuniformbuffer | ||
| gears | ||
| geometryshader | ||
| gltfloading | ||
| gltfscenerendering | ||
| hdr | ||
| imgui | ||
| indirectdraw | ||
| inlineuniformblocks | ||
| inputattachments | ||
| instancing | ||
| mesh | ||
| multisampling | ||
| multithreading | ||
| multiview | ||
| negativeviewportheight | ||
| nv_ray_tracing_basic | ||
| nv_ray_tracing_reflections | ||
| nv_ray_tracing_shadows | ||
| occlusionquery | ||
| offscreen | ||
| parallaxmapping | ||
| particlefire | ||
| pbrbasic | ||
| pbribl | ||
| pbrtexture | ||
| pipelines | ||
| pipelinestatistics | ||
| pushconstants | ||
| pushdescriptors | ||
| radialblur | ||
| renderheadless | ||
| screenshot | ||
| shadowmapomni | ||
| shadowmapping | ||
| shadowmappingcascade | ||
| specializationconstants | ||
| sphericalenvmapping | ||
| ssao | ||
| stencilbuffer | ||
| subpasses | ||
| terraintessellation | ||
| tessellation | ||
| textoverlay | ||
| texture | ||
| texture3d | ||
| texturearray | ||
| texturecubemap | ||
| texturemipmapgen | ||
| texturesparseresidency | ||
| triangle | ||
| viewportarray | ||
| vulkanscene | ||
| compile.py | ||
| README.md | ||
HLSL Shaders
This directory contains a fork of the shaders found in data/shaders/glsl, re-written in HLSL.
These can be compiled with DXC using the compile.py script.
Known issues
- specialization constants can't be used to specify array size.
gl_PointCoordnot supported. HLSL has no equivalent. We changed the shaders to calulate the PointCoord manually in the shader. (computenbody,computeparticles,particlefireexamples).- HLSL doesn't have inverse operation (
deferred,hdr,instancing,skeletalanimation&texturecubemapexamples). modfcauses compilation to fail without errors or warnings. (modfnot used by any examples, easily confused with fmod)- In
specializationconstantsexample, shader compilation fails with error:
When multiple constant ids are defined and have different types. We work around this problem by making all constant ids the same type, then use--- Error msg: fatal error: failed to optimize SPIR-V: Id 10 is defined more than onceasfloat,asintorasuintto get the original value in the shader. gl_RayTmaxNVnot supported. (nv_ray_tracing_*examples)- HLSL interface for sparse residency textures is different from GLSL interface. After translating from HLSL to GLSL the shaders behave slightly different. Most important parts do behave identically though.