Hirdetés
-
Új Noctua CPU-hűtő érkezett a helyszűkében szenvedő gépházakba
ph A 44 mm magas memóriamodulok szomszédságában megférő típus felülre helyezett légkavaróval dolgozik.
-
Megjelenési dátumot végre a Men of War II (PC)
gp Többszöri halasztás után végre megkapjuk a régóta várt folytatást.
-
A Coca-Cola következő nagy újítása az AI
it 1,1 milliárd dolláros üzletet kötött a Coca-Cola és a Microsoft, hogy előbbi használja majd a redmondi felhőt és AI-t.
Aktív témák
-
3man
csendes tag
Ideje atlepni a 3. dimenzioba. Ehhez kell definialni egy view matrixot, ami a kamera terbeli iranyat adja meg. Ehhez jarna egy projection matrix is, ami a perspektivat adna meg, de mivel most egy sugar koveteshez {raytrace} hasonlo modon fogok szamolni, erre nem lesz szukseg.
Egy uj utasitas lep a kepbe, a lerp(). Linear_interpolation,
vagyis a linearis interpolacio. Ezzel a shaderek nyelvehez tartozo utasitassal ket vektor kozt egy vonalon barmelyik pontot egyszeruen megkapjuk, csak egy 0 es 1 kozti szamot kell megadni.
A view matrix definialasahoz szukseges a szem(eyes) pozicioja, es hogy hova akarunk nezni (lookat). A float3(0,1,0) a felfele iranyt adja meg a terben.Ez termeszetesen modosithato, de mindig normalizalni kell.
Az view x iranyat a cross segitsegevel lehet megkapni. Az eredmeny vektor iranyara a linken megtalalhato kez-szabaly ervenyes.
Cross_productAz osszes tengely kiszamitasa utan vegigmegyek a kepernyo pixelein. A screen koordinatabol felveheto egy sugar(ray), aminek a metszespontjat kell megtalalni egy sikkal (plane). A sik alabbol az xz sik, de ha aktivva teszem a ket sort, akkor megadhato a sik normalja.
A jelenlegi grafikai megjelenitok (meg) nem igy dolgoznak, a folyamat forditott. A bemeno ertek egy haromszog sarkainak 3d koordinataja, amibol egy 2d kepernyo koordinatat kell kiszamolni.float3 lerp(float3 par1,float3 par2,float sc)
{
return par1 + (par2-par1)*sc;
}void draw_function()
{
float3 LookAt=float3(0,0,0);
float3 Eyes=float3(350,250,130);
float3 ViewMatrix_z=LookAt-Eyes;
ViewMatrix_z.Normalize();
float3 ViewMatrix_x=ViewMatrix_z.cross(float3(0,1,0));
float3 ViewMatrix_y=ViewMatrix_x.cross(ViewMatrix_z);for(int y=-y_size/2;y<y_size/2;y++)
for(int x=-x_size/2;x<x_size/2;x++)
{
float3 screen=float3(x,y,300);
float3 ray=ViewMatrix_x*screen.x + ViewMatrix_y*screen.y+ ViewMatrix_z*screen.z;
ray.Normalize();float3 plane_origo=float3(0,0,0);
float dist=(plane_origo.y-Eyes.y)/ray.y;//float3 plane_normal=float3(10,200,120).Normalize();
//dist=plane_normal.dot(plane_origo-Eyes)/plane_normal.dot(ray);float3 plane=Eyes + ray*dist;
plane.y=0.0;
float3 color=plane*0.002;
if(dist<0.0) color=lerp(float3(0,1,1),float3(0,0,1),ray.y);pixelv(screen,color);
}
}[ Szerkesztve ]
Aktív témák
- Google Chromecast topic
- Samsung Galaxy S24 Ultra - ha működik, ne változtass!
- Könyvajánló
- AMD Radeon™ RX 470 / 480 és RX 570 / 580 / 590
- War Thunder - MMO Combat Game
- Milyen autót vegyek?
- Apple Watch Ultra - első nekifutás
- Kávé kezdőknek - amatőr koffeinisták anonim klubja
- Fujifilm X
- Aliexpress tapasztalatok
- További aktív témák...
- ZOTAC GeForce GTX 1080 AMP Edition 8GB GDDR5X 256bit
- Filmes gép gyűjtemény
- Nikon D5000 + AF-S DX NIKKOR 18-105 mm
- Bontatlan Seagate & Western Digital HDD-k 3TB - 12TB -ig - Számla + Garancia, Ár alatt! BeszámítOK!
- DJI Mini 4 pro FMC drón - 3 akku, RC2 táv, 2 táska, Filterek, 2025. decemberig garancia, DJI Care