AcademySoftwareFoundation / AcademySoftwareFoundation/OpenColorIO
Code generation only works for PixelShader (Dx11) / Fragment Shader (OpenGL)
- Lingua principale
- C++
- Stelle
- 2.1k
- Fork
- 503
- Metriche di merge delle PR
- Nessuna PR unita negli ultimi 30g
Descrizione
When performing lookup table sampling, OpenColorIO uses the following :
`outColor.r = ocio_lut1d_0.Sample(ocio_lut1d_0Sampler, ocio_lut1d_0_computePos(outColor.r)).r;`
This makes it impossible to use the generated code outside of a pixel shader, since in compute or other stages, we are not able to have automatic mip selection.
generated code should be :
`outColor.r = ocio_lut1d_0.SampleLevel(ocio_lut1d_0Sampler, ocio_lut1d_0_computePos(outColor.r),0).r;`
This is the same in OpenGL where we should enforce LOD = 0
This change should be for both 3d and 1d lookup textures.
I'm happy to make a PR if needed, if you prefer to avoid potential breaking changes, I'm also happy to make it as an Option in settings:
`shaderDesc->useLodSampling(true);
Thank
Julien
Guida per i contributori
Apri la guida per i contributori
Direzione di ricerca
Inizia individuando il codice shader generato per il campionamento di texture di ricerca 1D e 3D nei backend DirectX e OpenGL. Confronta le espressioni di campionamento attuali con il comportamento richiesto di LOD 0 esplicito, quindi verifica che il codice generato supporti le fasi compute e le altre fasi non-pixel senza la selezione automatica dei mipmap.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Valutazione
- Stack tecnologico
- cpp
- Ambito
- computer-graphics
- Tipo di issue
- Bug
- Difficoltà
- 4/5
- Tempo stimato
- 3-5 giorni
- Stato di attività
- Ferma
- Chiarezza
- Abbastanza chiara
- Idoneità per principianti
- 45/100