procedural-3d-engine/data/shaders/hlsl
Sascha Willems feb939096f
Merge glTF branch (#747)
* Added helper function for easy pipeline vertex input state create info structure setup from glTF model vertex class

* Split glTF loader into header and implementation

* Updated sample to use glTF

* Removed collada files

Replaced assets are now part of the asset pack

* Return value for glTF model vertex input state create info helper

* Removed unused assets

* Use glTF assets

* Added default material for glTF node's without materials

* Use glTF assets

* Apply pre-transforms to normals

* Use glTF assets

* Use glTF assets

* Use vertex input state from glTF model class

* Scene setup

* Use glTF assets

* Use glTF assets

* Display error message and exit if glTF file could not be loaded

* Use glTF assets

* Use glTF assets

* Use glTF assets

* Remove unused buffer binds

* Use glTF assets

* Remove no longer used model files

* Remove no longer used model files

* Added support for rendering glTF models with images

* glTF model normal pre-transform ignores translation

* Use glTF assets

* Use glTF assets

* Use glTF assets

* Use glTF assets

* Use glTF assets

* Only add combined image samplers to pool if actually used in the scene

* Use global descriptor set layouts

* Use global descriptor set layouts

* Use glTF assets

* Use glTF assets

* Use glTF assets

Code cleanup
Updated GLSL and HLSL shaders

* Use glTF assets

Code cleanup

* Use glTF assets

Code cleanup
Updated GLSL and HLSL shaders

* Remove no-longer used model

* Use glTF assets

Code cleanup
Updated GLSL and HLSL shaders

* Use glTF assets

Code cleanup
Updated GLSL and HLSL shaders
Removed no-longer used model

* Use glTF assets

Code cleanup
Use RGBA texture instead of different compressed formats
Removed no-longer used assets

* Adnrdoid build file

* Use glTF assets

Code cleanup and refactoring
Updated GLSL and HLSL shaders

* Added vertex count and way of passing additional memory property type flags to glTF loader

* Use glTF assets

Updated GLSL and HLSL shaders
Removed no-longer used assets

* Use glTF assets

Updated GLSL and HLSL shaders

* Remove unfinished sample

* Completely reworked push constants sample

Use glTF assets
Updated GLSL and HLSL shaders
Removed no-longer used assets

* Android CMake build files

* Removed un-used asset

* Explicit buffer binding function

* Use glTF assets

Code cleanup
Updated GLSL and HLSL shaders

* Use glTF assets

Code cleanup

* Use glTF assets

Code cleanup
Removed no-longer used assets

* Use glTF assets

Code cleanup
Updated GLSL and HLSL shaders
Removed no-longer used assets

* Remove no-longer used asset

* Use glTF assets

Code cleanup and refactoring
Performance optimizations
Updated GLSL and HLSL shaders
Removed no-longer used assets

* Use glTF assets

Code cleanup and refactoring
Updated GLSL and HLSL shaders
Removed no-longer used assets

* Use glTF assets

Code cleanup and refactoring
Updated GLSL and HLSL shaders
Removed no-longer used assets

* Use glTF assets

Code cleanup and refactoring
Removed no-longer used assets

* Use glTF assets

Code cleanup and refactoring
Removed no-longer used assets

* Use glTF assets

Code cleanup and refactoring

* Use glTF assets

Code cleanup and refactoring

* Use glTF assets

Code cleanup and refactoring
Removed no-longer used assets

* Pass vertex size and calculate multiplier in shaders instead of hard-coding

With this, changes to the glTF vertex structure won't break the ray tracing samples

* Load tangents (if present)

* Use glTF assets

Code cleanup and heavy refactoring
Reworked debug display code

* Android build

* Normal mapping fixes

Udpated HLSL shaders

* Use glTF assets

Code cleanup and heavy refactoring
Reworked debug display code
Updated GLSL and HLSL shaders

* Code cleanup, comments

* Use glTF assets

Code cleanup and heavy refactoring
Reworked debug display code
Updated GLSL and HLSL shaders

* Added sample count to framebuffer create info

* Removed no-longer used assets

* Android build

Removed no-longer used assets

* Code cleanup and heavy refactoring

Updated GLSL and HLSL shaders
Use tangents stored in GLSL instead of calculating them in the fragment shader

* Renamed textured PBR sample main cpp file

* Use glTF assets

Code cleanup and refactoring
Updated GLSL and HLSL shaders
Removed no-longer used assets

* Use glTF assets

Removed no-longer used assets

* Android build files

* Android build files

* Use glTF assets

Removed no-longer used assets

* Fixed HLSL shaders

* Android build files

* Use glTF assets

Updated GLSL and HLSL shaders
Removed no-longer used assets

* Use glTF assets

Updated GLSL and HLSL shaders
Removed no-longer used assets

* Added flag to disable glTF image loading

Useful for samples that use their own textures or don't use textures at all to speed up loading

* Use glTF assets

Code cleanup
Use Sponza scene instead of Sibenik to better highlight the effect
Updated GLSL and HLSL shaders

* Updated Android build files

* Removed left-over comment

* Use Sponza scene for the SSAO sample

* Removed unused code

* Removed ASSIMP

No longer required as all samples now use the glTF file format

* Added missing vertex shader stage

* Removed old ASSIMP-based model loader

* Added support for loading external glTF images from ktx

Android fixes for loading external buffer files

* Scene setup

* Added missing shader stages

* Removed ASSIMP from build files

* Fixed compiler warning

* Removed ASSIMP from readmes

* Android build files cleanup

* Replaced ktx submodule with only the files required for this repo

The ktx submodule was a tad too big and contained lots of files not required for this repo

* Moved ktx build files into base project

* Use glTF assets

* Use glTF assets

* Removed license files, will be moved to asset pack

* Use RGBA textures

* Use RGBA cubemp texture with face assignment based on original images

Refs #679

* Android build files

* Removed textures

All textures will be moved to the asset pack

* Ignore asset folders

* Removed font

Fonts will be moved to the asset pack

* Link to gltf asset pack

* Updated gitignore

* Android build file
2020-07-28 20:20:38 +02:00
..
base Add pre-built HLSL shaders 2020-06-01 12:22:28 +01:00
bloom Add pre-built HLSL shaders 2020-06-01 12:22:28 +01:00
computecloth Add pre-built HLSL shaders 2020-06-01 12:22:28 +01:00
computecullandlod Add pre-built HLSL shaders 2020-06-01 12:22:28 +01:00
computeheadless Add pre-built HLSL shaders 2020-06-01 12:22:28 +01:00
computenbody Add pre-built HLSL shaders 2020-06-01 12:22:28 +01:00
computeparticles Add pre-built HLSL shaders 2020-06-01 12:22:28 +01:00
computeraytracing Add pre-built HLSL shaders 2020-06-01 12:22:28 +01:00
computeshader Add pre-built HLSL shaders 2020-06-01 12:22:28 +01:00
conditionalrender Add pre-built HLSL shaders 2020-06-01 12:22:28 +01:00
conservativeraster Add pre-built HLSL shaders 2020-06-01 12:22:28 +01:00
debugmarker Add pre-built HLSL shaders 2020-06-01 12:22:28 +01:00
deferred Merge glTF branch (#747) 2020-07-28 20:20:38 +02:00
deferredmultisampling Merge glTF branch (#747) 2020-07-28 20:20:38 +02:00
deferredshadows Merge glTF branch (#747) 2020-07-28 20:20:38 +02:00
descriptorsets Add pre-built HLSL shaders 2020-06-01 12:22:28 +01:00
displacement Merge glTF branch (#747) 2020-07-28 20:20:38 +02:00
distancefieldfonts Add pre-built HLSL shaders 2020-06-01 12:22:28 +01:00
dynamicuniformbuffer Add pre-built HLSL shaders 2020-06-01 12:22:28 +01:00
gears Add pre-built HLSL shaders 2020-06-01 12:22:28 +01:00
geometryshader Add pre-built HLSL shaders 2020-06-01 12:22:28 +01:00
gltfloading Merge glTF scene rendering sample (#744) 2020-07-04 14:20:45 +02:00
gltfscenerendering Merge glTF scene rendering sample (#744) 2020-07-04 14:20:45 +02:00
hdr Add pre-built HLSL shaders 2020-06-01 12:22:28 +01:00
imgui Add pre-built HLSL shaders 2020-06-01 12:22:28 +01:00
indirectdraw Merge glTF branch (#747) 2020-07-28 20:20:38 +02:00
inlineuniformblocks Add pre-built HLSL shaders 2020-06-01 12:22:28 +01:00
inputattachments Add pre-built HLSL shaders 2020-06-01 12:22:28 +01:00
instancing Merge glTF branch (#747) 2020-07-28 20:20:38 +02:00
mesh Add pre-built HLSL shaders 2020-06-01 12:22:28 +01:00
multisampling Rename multisampling shaders: scene -> mesh 2020-06-01 12:22:28 +01:00
multithreading Merge glTF branch (#747) 2020-07-28 20:20:38 +02:00
multiview Add pre-built HLSL shaders 2020-06-01 12:22:28 +01:00
negativeviewportheight Add pre-built HLSL shaders 2020-06-01 12:22:28 +01:00
nv_ray_tracing_basic Add pre-built HLSL shaders 2020-06-01 12:22:28 +01:00
nv_ray_tracing_reflections Merge glTF branch (#747) 2020-07-28 20:20:38 +02:00
nv_ray_tracing_shadows Merge glTF branch (#747) 2020-07-28 20:20:38 +02:00
occlusionquery Add pre-built HLSL shaders 2020-06-01 12:22:28 +01:00
offscreen Merge glTF branch (#747) 2020-07-28 20:20:38 +02:00
parallaxmapping Merge glTF branch (#747) 2020-07-28 20:20:38 +02:00
particlefire Merge glTF branch (#747) 2020-07-28 20:20:38 +02:00
pbrbasic Add pre-built HLSL shaders 2020-06-01 12:22:28 +01:00
pbribl Add pre-built HLSL shaders 2020-06-01 12:22:28 +01:00
pbrtexture Merge glTF branch (#747) 2020-07-28 20:20:38 +02:00
pipelines Merge glTF branch (#747) 2020-07-28 20:20:38 +02:00
pipelinestatistics Add pre-built HLSL shaders 2020-06-01 12:22:28 +01:00
pushconstants Merge glTF branch (#747) 2020-07-28 20:20:38 +02:00
pushdescriptors Add pre-built HLSL shaders 2020-06-01 12:22:28 +01:00
radialblur Add pre-built HLSL shaders 2020-06-01 12:22:28 +01:00
renderheadless Add pre-built HLSL shaders 2020-06-01 12:22:28 +01:00
screenshot Add pre-built HLSL shaders 2020-06-01 12:22:28 +01:00
shadowmapping Merge glTF branch (#747) 2020-07-28 20:20:38 +02:00
shadowmappingcascade Add pre-built HLSL shaders 2020-06-01 12:22:28 +01:00
shadowmappingomni Merge glTF branch (#747) 2020-07-28 20:20:38 +02:00
specializationconstants Add pre-built HLSL shaders 2020-06-01 12:22:28 +01:00
sphericalenvmapping Merge glTF branch (#747) 2020-07-28 20:20:38 +02:00
ssao Merge glTF branch (#747) 2020-07-28 20:20:38 +02:00
stencilbuffer Add pre-built HLSL shaders 2020-06-01 12:22:28 +01:00
subpasses Add pre-built HLSL shaders 2020-06-01 12:22:28 +01:00
terraintessellation Merge glTF branch (#747) 2020-07-28 20:20:38 +02:00
tessellation Add pre-built HLSL shaders 2020-06-01 12:22:28 +01:00
textoverlay Add pre-built HLSL shaders 2020-06-01 12:22:28 +01:00
texture Add pre-built HLSL shaders 2020-06-01 12:22:28 +01:00
texture3d Add pre-built HLSL shaders 2020-06-01 12:22:28 +01:00
texturearray Add pre-built HLSL shaders 2020-06-01 12:22:28 +01:00
texturecubemap Merge glTF branch (#747) 2020-07-28 20:20:38 +02:00
texturecubemaparray Added cube map array sample 2020-07-19 07:07:54 +02:00
texturemipmapgen Add pre-built HLSL shaders 2020-06-01 12:22:28 +01:00
texturesparseresidency Add pre-built HLSL shaders 2020-06-01 12:22:28 +01:00
triangle Add pre-built HLSL shaders 2020-06-01 12:22:28 +01:00
viewportarray Add pre-built HLSL shaders 2020-06-01 12:22:28 +01:00
vulkanscene Add pre-built HLSL shaders 2020-06-01 12:22:28 +01:00
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_PointCoord not supported. HLSL has no equivalent. We changed the shaders to calulate the PointCoord manually in the shader. (computenbody, computeparticles, particlefire examples).
  • HLSL doesn't have inverse operation (deferred, hdr, instancing, skeletalanimation & texturecubemap examples).
  • modf causes compilation to fail without errors or warnings. (modf not used by any examples, easily confused with fmod)
  • In specializationconstants example, shader compilation fails with error:
    --- Error msg: fatal error: failed to optimize SPIR-V: Id 10 is defined more than once
    
    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 asfloat, asint or asuint to get the original value in the shader.
  • gl_RayTmaxNV not 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.