.[ ČeskéHry.cz ].
vertex textura

 
odeslat nové téma   Odpovědět na téma    Obsah fóra České-Hry.cz -> 3D API / 3D Enginy
Zobrazit předchozí téma :: Zobrazit následující téma  
Autor Zpráva
joeblack



Založen: 14. 09. 2009
Příspěvky: 66

PříspěvekZaslal: 14. září 2009, 15:17:13    Předmět: vertex textura Odpovědět s citátem

Zdravim,
v mojom engine (d3d) pouzivam physX na simulaciu fyziky.
chcel by som si hodnoty ktore dostanem ako vysledok simulacie poslat do VS ako hodnoty float textury. Lenze mi to nefunguje (vydim len neake divne potocene trojuholniky miesto sceny). Ked miesto textury poslem do VS maticu ktoru dostanem z physX objekty sa pohybuju ako maju. Mohol by som takto nastavit maticu transformacie pre kazdy pohyblivy objekt samostatne, ale chcem mat cim menej draw-callov. Preto by som rad pouzil texturu s tym, ze by som pouzival 4-tu hodnotu polohy ako index matice v texture.
kod vytvarania textury :

kód:
D3DXCreateTexture(engine::getDevice(),2,2,1,D3DUSAGE_DYNAMIC,D3DFMT_A32B32G32R32F,D3DPOOL_DEFAULT,&forceTextureBuffer1)


(mam iba jeden pohyblivy objekt preto mi zatial staci 2x2 )


naplnanie textury :

kód:
This->scenes[This->currentScene]->updateArray(forceArray);
forceTextureBuffer1->LockRect(0,&m_rectLocked,NULL,0);
memcpy((float*)m_rectLocked.pBits, forceArray, 4*2*2*sizeof(float));
forceTextureBuffer1->UnlockRect(0);



kód:
void sceneDesc::updateArray(float *&forceArray)
{
WORD numActors = scene->getNbActors();
NxActor** actors = scene->getActors();
for (WORD i=0; i < numActors;++i)
{
NxActor* actor = *actors++;
if (i == 26)
{
actor->getGlobalPose().getColumnMajor44(forceArray);
}
}
}


VS :
kód:
float4x4 worldMatrix;
worldMatrix[0]= tex2Dlod(Sampler,float4(0,0,0,0)).abgr;
worldMatrix[1]= tex2Dlod(Sampler,float4(0.5,0,0,0)).abgr;
worldMatrix[2]= tex2Dlod(Sampler,float4(0,0.5,0,0)).abgr;
worldMatrix[3]= tex2Dlod(Sampler,float4(0.5,0.5,0,0)).abgr;
OUT.hposition = mul(float4(position.xyz,1),mul(worldMatrix,worldViewProj));


(ked poslem worldMatrix ako maticu vsetko je ok.)

MODERATOR: tag CODE!!!
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
Zobrazit příspěvky z předchozích:   
odeslat nové téma   Odpovědět na téma    Obsah fóra České-Hry.cz -> 3D API / 3D Enginy Časy uváděny v GMT + 1 hodina
Strana 1 z 1

 
Přejdi na:  
Nemůžete odesílat nové téma do tohoto fóra
Nemůžete odpovídat na témata v tomto fóru
Nemůžete upravovat své příspěvky v tomto fóru
Nemůžete mazat své příspěvky v tomto fóru
Nemůžete hlasovat v tomto fóru


Powered by phpBB © 2001, 2005 phpBB Group


Vzhled udelal powermac
Styl "vykraden" z phpBB stylu MonkiDream - upraveno by rezna