HTML

gondolataim elsősorban játékfejlesztésről

Elsősorban játékfejlesztés magyarul: az enginem fejlesztése során felmerülő problémák, ötletek, tévutak stb dokumentálása, amely számomra és talán mások számára is hasznos lehet később Másodsorban gondolatok szavakban...

Kapcsolat:
aalberik 'at' gmail 'dot' com

Haletető

Galéria

Címkék

Összes

Linkblog

Naptár

december 2024
Hét Ked Sze Csü Pén Szo Vas
<<  < Archív
1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31

még egy csokor trükk

2009.03.29. 17:22 :: syam

-0.0...1.0 tartományba eső float be- és kicsomagolása rgba-ba

glsl:

vec4 packFloatToVec4i(const float value)
{
const vec4 bitSh = vec4(256.0 * 256.0 * 256.0, 256.0 * 256.0, 256.0, 1.0);
const vec4 bitMsk = vec4(0.0, 1.0 / 256.0, 1.0 / 256.0, 1.0 / 256.0);
vec4 res = fract(value * bitSh);
res -= res.xxyz * bitMsk;
return res;
}

asm:

PARAM bitShift={256.0 * 256.0 * 256.0, 256.0 * 256.0, 256.0, 1.0};
PARAM bitMask={0.0, -1.0 / 256.0, -1.0 / 256.0, -1.0 / 256.0};
MUL res, value, bitShift;
FRC res, res;
MAD res, res.xxyz, bitMask, res;


glsl:

float unpackFloatFromVec4i(const vec4 value)
{
const vec4 bitSh = vec4(1.0 / (256.0 * 256.0 * 256.0), 1.0 / (256.0 * 256.0), 1.0 / 256.0, 1.0);
return(dot(value, bitSh));
}

asm:

PARAM bitShift={1.0/ (256.0 * 256.0 * 256.0), 1.0/(256.0 * 256.0), 1.0/256.0, 1.0};
DP4 res, value, bitShift;



-mélység tárolása lineárisan 0.0....1.0 tartományban

glsl:

void main()
{
vec4 viewPos = gl_ModelViewMatrix * gl_Vertex; // this will transform the vertex into eyespace
depth = (-viewPos.z-near)/(far-near); // will map near..far to 0..1
gl_Position = ftransform();
}

asm:

DP4 viewPos, state.matrix.modelview[2];
ADD depth, viewPos.z, NEAR;
MUL depth, depth, MINUS_FAR_MINUS_NEAR_INV;

Szólj hozzá!

A bejegyzés trackback címe:

https://sakura7.blog.hu/api/trackback/id/tr981033348

Kommentek:

A hozzászólások a vonatkozó jogszabályok  értelmében felhasználói tartalomnak minősülnek, értük a szolgáltatás technikai  üzemeltetője semmilyen felelősséget nem vállal, azokat nem ellenőrzi. Kifogás esetén forduljon a blog szerkesztőjéhez. Részletek a  Felhasználási feltételekben és az adatvédelmi tájékoztatóban.

Nincsenek hozzászólások.
süti beállítások módosítása