AcademySoftwareFoundation / AcademySoftwareFoundation/OpenColorIO

Code generation only works for PixelShader (Dx11) / Fragment Shader (OpenGL)

Aperta
#2,144 4 commenti 0 reazioni 0 assegnatari Vedi su GitHub
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

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.