| Önceki başlık :: Sonraki başlık | 
	
	
		| Yazar | Mesaj | 
	
		| Darklight 
 
  
 Kayıt: Oct 31, 2002
 Mesajlar: 185
 Nereden: Ankara
 
 | 
			
				|  Tarih: Mon Jul 25, 2005 6:50 pm    Mesaj konusu: GLSL 'de Sampler2D |   |  
				| 
 |  
				| Selam millet ... Tek Image üzerine Shader uyguladıgımda herhangi bir sorun olmadan calisiyoo..
 
 
 //Texture ID lerini tutuyor..
 texture2D ShadowTexID,
 texture2D BgTexID
 
 diyelimki
 
 Sampler2D baseMap
 Sampler2D  baseMap1  var shaderda
 
 ben baseMap ShadowTexID
 baseMap1 bgTexID yi baglamak istiyorum  bunu nasıl
 basaracagım ...
 
 yani hangi OpenGL kodları bu ikisi arasındaki baglantıyı yapıyor..
 |  | 
	
		| Başa dön |  | 
	
		|  | 
	
		| Darklight 
 
  
 Kayıt: Oct 31, 2002
 Mesajlar: 185
 Nereden: Ankara
 
 |  | 
	
		| Başa dön |  | 
	
		|  | 
	
		| stroma 
 
  
 Kayıt: Mar 31, 2003
 Mesajlar: 169
 
 
 | 
			
				|  Tarih: Mon Jul 25, 2005 7:12 pm    Mesaj konusu: |   |  
				| 
 |  
				| anladığım kadarı ile bir shader içinde 2 texture unit kullanacaksın? bu işlem için programın init kısımda: 
 
 
	  | Kod: |  
	  | GLint texLoc; GLhandleARB prog;
 
 setshader(prog, vs, fs); //programı ayarladık, complie, link felan ettik..
 
 texLoc = glGetUniformLocationARB(prog, "ShadowTex"); //shader içindeki ismi "ShadowTex" olsun
 glUniform1iARB(texLoc, 0); //0. texture unit senin olsun
 texLoc = glGetUniformLocationARB(prog, "BgTex");
 glUniform1iARB(texLoc, 1); //1. texture unit senin olsun
 
 |  yaptıktan sonra real time kısımda:
 
 
 
	  | Kod: |  
	  | glUseProgramObjectARB(prog);
 
 glActiveTexture(GL_TEXTURE0); //0. unit
 glEnable(GL_TEXTURE_2D);
 glBindTexture(GL_TEXTURE_2D, ShadowTexID); // bu unit için kullanacağımız kaplamamızın id si
 
 glActiveTexture(GL_TEXTURE1); //1.unit
 glEnable(GL_TEXTURE_2D);
 glBindTexture(GL_TEXTURE_2D, BgTexID);
 RenderHede();
 
 |  bu kadar basit... kolay gele.
 |  | 
	
		| Başa dön |  | 
	
		|  | 
	
		| Darklight 
 
  
 Kayıt: Oct 31, 2002
 Mesajlar: 185
 Nereden: Ankara
 
 | 
			
				|  Tarih: Tue Jul 26, 2005 8:26 am    Mesaj konusu: |   |  
				| 
 |  
				| 
 
	  | Alıntı: |  
	  | glUseProgramObjectARB(prog); glActiveTexture(GL_TEXTURE0); //0. unit
 glEnable(GL_TEXTURE_2D);
 glBindTexture(GL_TEXTURE_2D, ShadowTexID); // bu unit için
 kullanacağımız kaplamamızın id si
 texLoc = glGetUniformLocationARB(prog, "ShadowTex"); //shader içindeki ismi "ShadowTex" olsun
 glUniform1iARB(texLoc, 0); //0. texture unit senin olsun
 
 glActiveTexture(GL_TEXTURE1); //1.unit
 glEnable(GL_TEXTURE_2D);
 glBindTexture(GL_TEXTURE_2D, BgTexID);
 texLoc = glGetUniformLocationARB(prog, "BgTex");
 glUniform1iARB(texLoc, 1); //1. texture unit senin olsun
 
 RenderHede();
 |  
 Kodu yukarıdaki sekilde duzelttim yoksa Uniform Bind'dan sonra vermessen Calismadı bende
 |  | 
	
		| Başa dön |  | 
	
		|  | 
	
		| stroma 
 
  
 Kayıt: Mar 31, 2003
 Mesajlar: 169
 
 
 | 
			
				|  Tarih: Tue Jul 26, 2005 10:26 am    Mesaj konusu: |   |  
				| 
 |  
				| bende belirttiğim şekilde çalışıyor. zaten location lar ve unit adresleri hep hazırlık kısımda hesaplanır. real time içinde location almak çok performans kaybettirir. başka bir yerde hata olmasın? bazı yerleri global yaparak denemeni tavsiye ederim (pek alaka göremedim ama bazen işe yarıyor  ) veya çalışmayan kodu yazabilir misin? |  | 
	
		| Başa dön |  | 
	
		|  | 
	
		| Darklight 
 
  
 Kayıt: Oct 31, 2002
 Mesajlar: 185
 Nereden: Ankara
 
 | 
			
				|  Tarih: Tue Jul 26, 2005 11:15 am    Mesaj konusu: |   |  
				| 
 |  
				| Simdide soyle bir sorunla karsılasiyorum ... 
 Yukarıdaki sistem birdefa
 rendering yapılırsa ve Swap  sonra ekrana basma işlemi guzelce gerceklesiyor...
 ama sonraki Rendering ve Swap larda ekran simsiyah cıkıyorr...
 |  | 
	
		| Başa dön |  | 
	
		|  | 
	
		| stroma 
 
  
 Kayıt: Mar 31, 2003
 Mesajlar: 169
 
 
 | 
			
				|  Tarih: Tue Jul 26, 2005 12:53 pm    Mesaj konusu: |   |  
				| 
 |  
				| büyük ihtimal depth buffer veya projeksiyon matrisleri ile alakalıdır diye düşünüyorum. shader kullanmayan debug modeller çiz aynı yerlere. ana döngünü kontrol et. çizimden sonra değişen ne ayarlar var diye bak. |  | 
	
		| Başa dön |  | 
	
		|  | 
	
		| Darklight 
 
  
 Kayıt: Oct 31, 2002
 Mesajlar: 185
 Nereden: Ankara
 
 | 
			
				|  Tarih: Tue Jul 26, 2005 7:16 pm    Mesaj konusu: |   |  
				| 
 |  
				| Yok bu dediklerini onceden denemistim.. Shader kapattıgın an sistem renderlemesi normal sekilde gerceklesmekte... 
 Birde sriverlardan olabilecegini dusunmeye basladım.. Cunku ATI'nin bazı uygulamalarıda calişmamakta ...Sihay ekran cıkmakta.. Cok garip bir problem ilginc...
 
 Hiç olmassa RenderTarget PBuffer yontemleri ile işi halledecegiz.. Simdilik.. Gecici bir cozum uretmem gerekecek ...
 |  | 
	
		| Başa dön |  | 
	
		|  | 
	
		|  |