Pokaż wiadomości

Ta sekcja pozwala Ci zobaczyć wszystkie wiadomości wysłane przez tego użytkownika. Zwróć uwagę, że możesz widzieć tylko wiadomości wysłane w działach do których masz aktualnie dostęp.


Wiadomości - .:NOXY:.

Strony: 1 ... 49 50 51 52 [53]
781
OpenGL / GLSL a glActiveTexture
« dnia: Styczeń 18, 2009, 23:07:17 »
Moje pytanie jest pewnie bardzo lamerskie ale dopiero uczę sie GLSL i nie rozumiem pewnej kwestii, otoz:

Mam shader odwzorowania srodowiskowego bardzo prosty z oswietleniem oto kod:

vert:

varying vec3  Normal;
varying vec3  EyeDir;
uniform vec3  LightPos;

varying vec3 L;
varying vec3 N;
varying vec3 P;

void main()
{
   P = vec3(gl_ModelViewMatrix * gl_Vertex);
     L = normalize(-gl_LightSource[1].position.xyz-P);
   N = normalize(gl_NormalMatrix * -gl_Normal);

   gl_TexCoord[0] = gl_MultiTexCoord0;

       gl_Position    = ftransform();
       Normal         = normalize(gl_NormalMatrix * gl_Normal);
       vec4 pos       = gl_ModelViewMatrix * gl_Vertex;
       EyeDir         = pos.xyz;
}

frag:

const vec3 Xunitvec = vec3(1.0, 0.0, 0.0);
const vec3 Yunitvec = vec3(0.0, 1.0, 0.0);

uniform float MixRatio;

uniform sampler2D EnvMap;
uniform sampler2D myTexture;

varying vec3  Normal;
varying vec3  EyeDir;

varying vec3 L;
varying vec3 N;
varying vec3 P;

void main()
{
   
   vec3 E = normalize(-P);
   vec3 R = normalize(-reflect(L,N));
 
     vec4 Iamb =  gl_FrontLightProduct[1].ambient * 0.1;
     vec4 Idiff = gl_FrontLightProduct[1].diffuse * max(dot(N,L), -0.65);
   vec4 Ispec = gl_FrontLightProduct[1].specular * pow( max(dot(R,E), 0.0) , gl_FrontMaterial.shininess);

   vec4 Mdiff = Idiff * 0.10;

   vec3 reflectDir = reflect(EyeDir, Normal);

   vec2 index;

       index.y = dot(normalize(reflectDir), Yunitvec);
       reflectDir.y = 0.0;
       index.x = dot(normalize(reflectDir), Xunitvec) * 0.5;
       
       if (reflectDir.z >= 0.0)
           index = (index + 1.0) * 0.5;
       else
       {
           index.t = (index.t + 1.0) * 0.5;
           index.s = (-index.s) * 0.5 + 1.0;
       }
   

       vec3 envColor = vec3(texture2D(EnvMap, index));

       vec3 base = vec3(texture2D(myTexture, gl_TexCoord[0]));
       envColor = mix(base, envColor, MixRatio);

       gl_FragColor = vec4(envColor, 1.0) + Mdiff + Ispec + Iamb;
}

działa dobrze i wszystko jest ok ale moj problem polega na podawaniu textury do shadera dokladnie "EnvMap"

robie to w nastepujacy sposob:

glActiveTexture(GL_TEXTURE0 + 2);
glBindTexture(GL_TEXTURE_2D, evTex);
                  
int location = Test.GetUniLoc("EnvMap");
                  
if(location == -1){
   break;
}
else
{
   glUniform1iARB(location,2);   
}
                  
glActiveTexture(GL_TEXTURE0);

i teraz moje pytanie co dokladnie mam wstawiac za ta liczbe 2 wiem ze ma to byc poniekad nr textury ale dalczego u mnie to jest akurat 2 (doszedlem experymentalnie do tego)

zmienna textury evTex jest globalna.

do czego dokladnie sluzy glActiveTexture() i jak mam to na przyszłosc obliczac z gory dziekuje za pomoc.


782
Projekty rozpoczęte / Odp: UT - test uruchamialności
« dnia: Styczeń 09, 2009, 19:05:59 »
Mam VC++ ale wersja 2003.NET bez SP ;p wiec przekompiluj w C::B jak tam sie skompiluje to na pewno sie wlaczy wszedzie :>

783
Projekty rozpoczęte / Odp: UT - test uruchamialności
« dnia: Styczeń 09, 2009, 19:02:42 »
Aplikacja nie została właściwie zainicjowana (0x0150002). Kliknij przycisk... itd :]

WinXP MX4 SP2 32bit

AMDx2 BE-2350 2.1Ghz 64bit
2GbRam Geil Dual Channel 800Mhz
Galaxy GF7300GT GDDR3 256Vram PS/VS 3.0

Czy to nie jest przypadkiem pisane w Code::Blocks? ktos pisal tu o bledzie w module ntdll.dll ;]
tez kedys cos takiego mialem zobacz czy gdzies nie zapomniales dac NULL albo czy zamias alloc uzywasz realloc badz odwrotnie i powinno byc ok :)

784
OpenGL / Odp: undefined reference.... openglut glutSolidSierpinskiSponge
« dnia: Styczeń 22, 2007, 13:38:00 »
Prawdopodobnie nie dodajesz ciała funkcji... używasz funkcji z *.h" ale nie dajesz lib-ów... w VC to sie dodaje przez pragme np.

#pragma comment(lib, "opengl32.lib) spróbuj jakoś tak dodać w codeblock w opcjach kompilatora może pomoże a ile o to chodzi :P

785
Projekty rozpoczęte / Odp: LIFE STONE...Kultowy rpg...
« dnia: Styczeń 08, 2007, 10:25:28 »
Co do wersji DEMO gry to prawdopodobnie premiera najprędzej w przyszły poniedziałek... dwoje sie i troje ale chyba się do piątku nie wyrobie z kodzeniem także może sie to troche przesunać ale nie znacznie :P Pozdrawiam.

786
Projekty rozpoczęte / Odp: LIFE STONE...Kultowy rpg...
« dnia: Grudzień 12, 2006, 09:14:31 »
Nie no Elmister trochę przesadza ja jestem sam do obkodzenia całego silnika... W jeden msc nie da rady ale za 2 może tak... no chyba że stanie się cud ;P

W sensie dema... pełna wersja za HOHO...

787
Inne / Odp: Źródła w artykUłach na gamedev.pl
« dnia: Listopad 22, 2006, 11:50:29 »
Chodzi mi o pełny kod są tam funkcje których "flaków" w opisie nie ma... a sam rozszerzony algorytm jest w pseudo kodzie a mi chodzi o to by zobaczyć jak to wygląda w praktyce :) bo np.: interesuje mnie jak sa kolejki LIFO zrobione a tego w tym kodzie nie ma... etc.

788
Inne / Źródła w artykUłach na gamedev.pl
« dnia: Listopad 21, 2006, 14:09:43 »
Witam ma ktoś może źródło do artykółu: http://www.warsztat.gd/articles.php?x=view&id=155 bo źródło przepadło a sam artykół nie specialnie do mnie przemawia XD za pomoc z góry dziękuje.

Strony: 1 ... 49 50 51 52 [53]