Zobrazit předchozí téma :: Zobrazit následující téma |
Autor |
Zpráva |
Juraj

Založen: 06. 12. 2007 Příspěvky: 189
|
Zaslal: 13. srpen 2009, 09:50:37 Předmět: |
|
|
Augi napsal: |
Zcela jistě ten poslední. Normály i výsledek osvětlení se zdá být ok. Když tím výsledkem osvětlení pronásobíš barvu textury, tak to nedává správné výsledky? |
Ano zdá se to být v pořádku, jen jsem si to ještě raději pár posledními posty chtěl ověřit.
Díky všem za perfektní spolupráci . |
|
Návrat nahoru |
|
 |
Augi

Založen: 28. 07. 2007 Příspěvky: 782 Bydliště: Čerčany
|
Zaslal: 13. srpen 2009, 09:53:02 Předmět: |
|
|
Přijď zas  |
|
Návrat nahoru |
|
 |
Juraj

Založen: 06. 12. 2007 Příspěvky: 189
|
Zaslal: 13. srpen 2009, 11:47:19 Předmět: |
|
|
Augi napsal: |
Přijď zas  |
A jsem tu . Jen bych potřeboval jak přidat do osvětlení také jako parametr barvu světla. Napadlo mě to tako:
- vzít barvu světla, vynásobit ji intenzitou světla a poté přičíst k výsledné barvě textury. Je to tak správně? |
|
Návrat nahoru |
|
 |
Augi

Založen: 28. 07. 2007 Příspěvky: 782 Bydliště: Čerčany
|
Zaslal: 13. srpen 2009, 12:07:08 Předmět: |
|
|
Může být - záleží, jak si to vymyslíš
Taky bys mohl udělat to, že bys použil intenzitu osvětlení pro lineární interpolaci mezi barvou textury a barvou světla. |
|
Návrat nahoru |
|
 |
Marek

Založen: 28. 07. 2007 Příspěvky: 1782 Bydliště: Velká Morava
|
Zaslal: 13. srpen 2009, 14:49:44 Předmět: |
|
|
Typicky je to tak: (okolní světlo + barva světla * intenzita světla) * barva textury + odlesk světla _________________ AMD Open Source Graphics Driver Developer |
|
Návrat nahoru |
|
 |
Juraj

Založen: 06. 12. 2007 Příspěvky: 189
|
Zaslal: 14. srpen 2009, 07:20:09 Předmět: |
|
|
Eosie napsal: |
Typicky je to tak: (okolní světlo + barva světla * intenzita světla) * barva textury + odlesk světla |
Tak jsem zkusil tvůj náverh, zdá se že to funguje správně. Jen sem raději hodím kód, v sharderech nejsem tolik zběhlý, tak jestli tam nemám nějakou hloupost..
kód: |
lightingFactor = saturate(saturate(dot(PSIn.Normal, PSIn.LightDirection)) + xAmbient);
float3 light;
light = xAmbient + xDiffuse * lightingFactor;
Output.Color = tex2D(LayerMap0Sampler, PSIn.TextureCoords );
Output.Color.xyz *= light;
|
|
|
Návrat nahoru |
|
 |
Augi

Založen: 28. 07. 2007 Příspěvky: 782 Bydliště: Čerčany
|
Zaslal: 14. srpen 2009, 07:36:59 Předmět: |
|
|
kód: |
Output.Color = ambientLight + tex2D(LayerMap0Sampler, PSIn.TextureCoords ) * (lightColor * saturate(dot(PSIn.Normal, PSIn.LightDirection)) + xAmbient)) |
|
|
Návrat nahoru |
|
 |
|