GpgStudy °Ô½ÃÆÇ À妽º GpgStudy
Game Programming Gems Åä·Ð
 
 FAQFAQ   °Ë»ö°Ë»ö   ¸â¹ö¸®½ºÆ®¸â¹ö¸®½ºÆ®   »ç¿ëÀÚ ±×·ì»ç¿ëÀÚ ±×·ì  À̹ÌÁö ÀÚ·á½ÇÀ̹ÌÁö ÀÚ·á½Ç   »ç¿ëÀÚ µî·ÏÇϱâ»ç¿ëÀÚ µî·ÏÇϱâ 
 °³ÀÎ Á¤º¸°³ÀÎ Á¤º¸   ÂÊÁö(°³ÀÎ ¸Þ½ÃÁö)¸¦ È®ÀÎÇÏ·Á¸é ·Î±×ÀÎÇϽʽÿÀÂÊÁö(°³ÀÎ ¸Þ½ÃÁö)¸¦ È®ÀÎÇÏ·Á¸é ·Î±×ÀÎÇϽʽÿÀ   ·Î±×Àηα×ÀΠ
GpgStudy ȨÀ¸·Î

projection shadow¿¡¼­.. back projection¹®Á¦

 
Àá±è[?]    GpgStudy °Ô½ÃÆÇ À妽º -> ±×·¡ÇÈ ÇÁ·Î±×·¡¹Ö
ÀÌÀü ÁÖÁ¦ º¸±â :: ´ÙÀ½ ÁÖÁ¦ º¸±â  
±Û¾´ÀÌ ¸Þ½ÃÁö
psyche04



°¡ÀÔ: 2004³â 4¿ù 8ÀÏ
¿Ã¸° ±Û: 282
¼Ò¼Ó: ´©¸®¿£ ¼ÒÇÁÆ®¿þ¾î

¿Ã¸®±âprojection shadow¿¡¼­.. back projection¹®Á¦ ¿Ã·ÁÁü: 2005-05-10 13:06
Àοë°ú ÇÔ²² ´äº¯ ÀÌ °Ô½Ã¹°À» del.icio.us¿¡ Ãß°¡



±×¸²º¸½Ã¸é ¹ÙÀ§°¡ ¶óÀÌÆ®¹æÇâÂÊÀ¸·Î ¾Õ¿¡Àִµ¥..
back projection¹®Á¦¶§¹®¿¡ ±×¸²ÀÚ°¡ ¸ÎÈü´Ï´Ù..
ÀÌ·±¹®Á¦´Â ¾î¶»°Ô ÇØ°áÇϳª¿ä?
_________________
ÁöÄ̼· nao
À§·Î
»ç¿ëÀÚ Á¤º¸ º¸±â ÂÊÁö º¸³»±â
¾ûŬ»µÄ¿



°¡ÀÔ: 2001³â 10¿ù 22ÀÏ
¿Ã¸° ±Û: 194
¼Ò¼Ó: 20´ëÈÄ¹Ý °íÁ¹ ¹é¼ö

¿Ã¸®±â ¿Ã·ÁÁü: 2005-05-10 13:38
Àοë°ú ÇÔ²² ´äº¯ ÀÌ °Ô½Ã¹°À» del.icio.us¿¡ Ãß°¡

Æú¸®°ï ´ÜÀ§·Î ÄøµÀ» ÇØÁֽðųª..
1D ÅØ½ºÃÄ¿¡ ÇÑÂÊÀº ¾ËÆÄ0, ¹Ý´ëÂÊÀº ¾ËÆÄ 1À» ¸Ô¿©¼­
ij¸¯ÅÍ Áß½ÉÀ»°æ°è·Î ±×¸²ÀÚ°¡ µå¸®¿öÁúÂÊÀº ¾ËÆÄ1 ¹Ý´ëÂÊÀº¾ËÆÄ 0À̵ǵµ·Ï ÇÁ·ÎÁ§¼ÇÇØ¼­ ±×¸²ÀÚ¿Í modulate ÇØÁÖ¼¼¿ä.
À§·Î
»ç¿ëÀÚ Á¤º¸ º¸±â ÂÊÁö º¸³»±â À̸ÞÀÏ º¸³»±â MSN ¸Þ½ÅÀú
ºñȸ¿ø
¼Õ´Ô





¿Ã¸®±â¹ÙÀ§.. ¿Ã·ÁÁü: 2005-05-10 14:04
Àοë°ú ÇÔ²² ´äº¯ ÀÌ °Ô½Ã¹°À» del.icio.us¿¡ Ãß°¡

¹ÙÀ§¿ÀºêÁ§Æ®´Â »©°í ÁöÇü¿¡¸¸ ±×¸²ÀÚ ±×·ÁÁÖ¼¼¿ä~
(°¡À幫½ÄÇϰí ÀϹÝÀûÀÎ ¹æ¹ý)
À§·Î
psyche04



°¡ÀÔ: 2004³â 4¿ù 8ÀÏ
¿Ã¸° ±Û: 282
¼Ò¼Ó: ´©¸®¿£ ¼ÒÇÁÆ®¿þ¾î

¿Ã¸®±â ¿Ã·ÁÁü: 2005-05-10 14:09
Àοë°ú ÇÔ²² ´äº¯ ÀÌ °Ô½Ã¹°À» del.icio.us¿¡ Ãß°¡

¾ûŬ´Ô, ºñȸ¿ø´Ô ´äº¯°¨»çÇÕ´Ï´Ù...
ºñȸ¿ø´Ô ÀǰßÀº ¹ÙÀ§ À§ÂÊ¿¡ ÀÖÀ»¶§µµ.. ±×¸²ÀÚ¸¦ ¸¸µé¾î¾ßÇØ¼­¿ä.. ¾ÈµÉ°Å °°°í¿ä..
¾ûŬ´ÔÀÇ ÀǰßÀº ¾î¶²¸»¾¸ÀÎÁö ¾Ë°Ú½À´Ï´Ù..±¸Çö¸ÕÀú ÇØºÁ¾ß°Ú³×¿ä..^^
_________________
ÁöÄ̼· nao
À§·Î
»ç¿ëÀÚ Á¤º¸ º¸±â ÂÊÁö º¸³»±â
psyche04



°¡ÀÔ: 2004³â 4¿ù 8ÀÏ
¿Ã¸° ±Û: 282
¼Ò¼Ó: ´©¸®¿£ ¼ÒÇÁÆ®¿þ¾î

¿Ã¸®±â ¿Ã·ÁÁü: 2005-05-11 14:14
Àοë°ú ÇÔ²² ´äº¯ ÀÌ °Ô½Ã¹°À» del.icio.us¿¡ Ãß°¡

¾ûŬ»µÄ¿´Ô²²¼­ ¾Ë·ÁÁֽйæ¹ýµ¥·Î ÇØ¼­ ÇØ°áÇ߳׿ä..



»¡°£ºÎºÐÀÌ ¾ËÆÄ°¡ 0ÀÎ ºÎºÐÀ̰í¿ä..
±¸Á¶¹®Á¦·Î ¾à°£ °í»ýÇßÁö¸¸.. ´öºÐ¿¡ °øºÎ¸¹ÀÌ ÇÏ°Ô µÇ¾ú½À´Ï´Ù..
ºñ·Ï.. °´Ã¼ Áß½ÉÁ¡À¸·Î ÇØ¼­.. Á߽ɿ¡¼­ ¸ÕºÎºÐÀÇ ±×¸²ÀÚ´Â ¾à°£ÀÇ ¿ÀÂ÷°¡
ÀÖ°ÚÁö¸¸.. ½Ã°¢ÀûÀ¸·Î Ƽ°¡ ¾È³ª¼­.. ¾Ïư.. ´äº¯ °¨»çÇß½À´Ï´Ù..


_________________
ÁöÄ̼· nao
À§·Î
»ç¿ëÀÚ Á¤º¸ º¸±â ÂÊÁö º¸³»±â
ijunei



°¡ÀÔ: 2003³â 11¿ù 2ÀÏ
¿Ã¸° ±Û: 24

¿Ã¸®±âprojection shadow - back projection ¹®Á¦ ¿Ã·ÁÁü: 2007-07-12 16:27
Àοë°ú ÇÔ²² ´äº¯ ÀÌ °Ô½Ã¹°À» del.icio.us¿¡ Ãß°¡

ÃÖ±Ù¿¡ Àúµµ back projection ¹®Á¦°¡ ¹ß»ýÇÏ¿© ÇØ°á¹ýÀ» ãÀ¸·Á°í

±¸±Û´Ô²²µµ µµ¿òÀ» ¿äûÇÏ¿© º¸¾ÒÁö¸¸ ÇØ°áÀÌ °¡´ÉÇÏ´Ù¶ó´Â ¸»¸¸ ÀÖ°í

¾î¶»°Ô ÇØ°áÇØ¾ßÇÑ´Ù ¶ó´Â ±â¼úÀûÀÎ ¹®¼­¸¦ ãÁö ¸øÇÏ¿© Çì¸Þ°í ÀÖ½À´Ï´Ù.

À§ÀÇ ±ÛÀ» ¿ä¾àÇϸé Äɸ¯Å͸¦ ÁßÁ¡À¸·Î ÇÏ¿© 1d texture ¸¦ ½¦µµ¿ì ¸®½Ã¹ö ¿ÀºêÁ§Æ®¿¡
projection Çϸ鼭 shadowmap °ú modulate ÇÏ¿© ¿øÇÏÁö ¾Ê´Â °÷¿¡ »ý±â´Â ±×¸²ÀÚ¸¦
Áö¿ï¼ö ÀÖ´Ù?

Á¦°¡ °³³äÀÌ ¾È¼­¼­¿ä ¤Ð.¤Ð

Á» ´õ Ä£ÀýÇÑ ¼³¸íÀ» ºÎʵå·Áµµ µÉ±î¿ä?
ºÎʵ右´Ï´Ù.
À§·Î
»ç¿ëÀÚ Á¤º¸ º¸±â ÂÊÁö º¸³»±â
psyche04



°¡ÀÔ: 2004³â 4¿ù 8ÀÏ
¿Ã¸° ±Û: 282
¼Ò¼Ó: ´©¸®¿£ ¼ÒÇÁÆ®¿þ¾î

¿Ã¸®±â ¿Ã·ÁÁü: 2007-07-13 12:13
Àοë°ú ÇÔ²² ´äº¯ ÀÌ °Ô½Ã¹°À» del.icio.us¿¡ Ãß°¡



Àúµµ ¹®¼­ Âü°íÇÒ°Ô ¾ø¾î¼­ Àç ¸Ú´ë·Î Çϱä Çß¾î¿ä..
ÃÖÀûÈ­ÀÇ ¿©Áö´Â ¸¹ÀÌ ÀÖÀ»°Å °°¾Æ¿ä.

ÀÏ´Ü ¿£Áø ÃʱâÈ­½Ã¿¡ ¾ËÆÄÅØ½ºÃ³¸¦ ¸¸µì´Ï´Ù.
ÄÚµå:
	//¾ËÆÄÅØ½ºÃÄ »ý¼º
	if( FAILED( xDevice::sCreateTexture( 32, 1, 1, 0 ,
	D3DFMT_A8R8G8B8, D3DPOOL_MANAGED,
	&s_lpTexAlpha, NULL ) ) ) return FALSE;


	D3DLOCKED_RECT LR;
	if(D3D_OK != s_lpTexAlpha->LockRect(0, &LR, NULL,0))
		return FALSE;

	D3DCOLOR *pCr = (D3DCOLOR *)LR.pBits;
	for(int i = 0; i <16>UnlockRect(0);


¶óÀÌÆ® ½ÃÁ¡ÀÇ ºä*ÇÁ·ÎÁ§¼Ç Çà·Ä ±¸ÇÒ¶§
¾ËÆÄ¸Ê Çà·Äµµ ±¸ÇØÁÝ´Ï´Ù.

ÄÚµå:
	//¾ËÆÄÅØ½ºÃ³¿ë º¯È¯Çà·Ä
	__Vector3 vLightDir, vXAxis, vYAxis;
	vLightDir = vCenter - vLightPos;
	float fDis = vLightDir.Magnitude();
	vLightDir.Normalize();
	vXAxis.Cross(__Vector3(0,1,0), vLightDir);
	vYAxis.Cross(vLightDir, vXAxis);
	vXAxis = vCenter + vXAxis * fDis;

	//Ä«¸Þ¶ó°¡ º¸´Â ¹æÇâ
	D3DXMatrixLookAtLH( &m_matAlphaVP, &vXAxis, &vCenter, &vYAxis );


±×¸²ÀÚ ·»´õ¸µ½Ã ¾ËÆÄ¸Êµµ °°ÀÌ ¿¬»êÇØ¼­ ±×·ÁÁÝ´Ï´Ù.
¾ËÆÄ¸Ê Çà·Äµµ ¶óÀÌÆ®±âÁØÇà·Äó·³ ÇöÀç ºäÀÇ ¿ªÇà·ÄÀ» °öÇÑÈÄ¿¡ ¼ÂÆÃÇØÁÝ´Ï´Ù.
ÄÚµå:
//±×¸²ÀÚ¿ë ¸Þ½¬À̸é
if(RF_MESH_PROJECTION_SHADOW & pRAD->dwRenderFlags)
{
	xDevice::sSetTexture(0, pRAD->pTexReplace);
	xDevice::sSetTextureStageState( 0, D3DTSS_COLOROP,D3DTOP_SELECTARG1 );
	xDevice::sSetTextureStageState( 0, D3DTSS_COLORARG1,D3DTA_TEXTURE);
	
	xDevice::sSetTextureStageState(0, D3DTSS_ALPHAOP,   D3DTOP_SELECTARG1);
	xDevice::sSetTextureStageState(0, D3DTSS_ALPHAARG1,D3DTA_TEXTURE);
	xDevice::sSetTextureStageState(0, D3DTSS_ALPHAARG2,D3DTA_CURRENT);

	xDevice::sSetSamplerState( 0, D3DSAMP_ADDRESSU, D3DTADDRESS_CLAMP);
	xDevice::sSetSamplerState( 0, D3DSAMP_ADDRESSV, D3DTADDRESS_CLAMP);
	xDevice::sSetSamplerState( 0, D3DSAMP_ADDRESSW, D3DTADDRESS_CLAMP);

	// ÅØ½ºÃÄ ÁÂÇ¥¸¦ Ä«¸Þ¶ó °ø°£¿¡ º¯È¯µÈ Á¤Á¡ÀÇ À§Ä¡¸¦ »ç¿ëÇÑ´Ù.
	xDevice::sSetTextureStageState( 0, D3DTSS_TEXCOORDINDEX, D3DTSS_TCI_CAMERASPACEPOSITION );
	// µ¿Â÷ÁÂÇ¥°è ÅØ½ºÃÄ º¯È¯ Çà·ÄÀ» »ç¿ëÇϵµ·Ï ¼³Á¤ÇØÁØ´Ù. 
	// ÀÌ·¸°Ô ÇØ¾ß D3D°¡ Åõ¿µ ³ª´°¼À(projection divide)¿¬»êÀ» ÇÑ´Ù.
	xDevice::sSetTextureStageState( 0, D3DTSS_TEXTURETRANSFORMFLAGS, D3DTTFF_COUNT4|D3DTTFF_PROJECTED );
	// ÅØ½ºÃÄ Çà·Ä ¼³Á¤.
	xDevice::sSetTransform( D3DTS_TEXTURE0, &(pRAD->mtxTex[0]) );

	//¾ËÆÄ¸ÊÀÌ ÀÖ´Ù¸é
	if(xProjectionShadow::s_lpTexAlpha)
	{
		iStart++;
		xDevice::sSetTexture(1, xProjectionShadow::s_lpTexAlpha);

		xDevice::sSetTextureStageState( 1, D3DTSS_TEXCOORDINDEX, D3DTSS_TCI_CAMERASPACEPOSITION );
		xDevice::sSetTextureStageState( 1, D3DTSS_TEXTURETRANSFORMFLAGS, D3DTTFF_COUNT4|D3DTTFF_PROJECTED );
		xDevice::sSetTransform( D3DTS_TEXTURE1, &(pRAD->mtxTex[1]) );

		xDevice::sSetTextureStageState( 1, D3DTSS_COLOROP,D3DTOP_SELECTARG1 );
		xDevice::sSetTextureStageState( 1, D3DTSS_COLORARG1,D3DTA_CURRENT);
		xDevice::sSetTextureStageState( 1, D3DTSS_COLORARG2,D3DTA_TEXTURE);

		xDevice::sSetTextureStageState(1, D3DTSS_ALPHAOP,   D3DTOP_MODULATE);
		xDevice::sSetTextureStageState(1, D3DTSS_ALPHAARG1,D3DTA_TEXTURE);
		xDevice::sSetTextureStageState(1, D3DTSS_ALPHAARG2,D3DTA_CURRENT);

		xDevice::sSetSamplerState( 1, D3DSAMP_ADDRESSU, D3DTADDRESS_CLAMP);
		xDevice::sSetSamplerState( 1, D3DSAMP_ADDRESSV, D3DTADDRESS_CLAMP);
		xDevice::sSetSamplerState( 1, D3DSAMP_ADDRESSW, D3DTADDRESS_CLAMP);
	}
}


ÀúÈñÂÊÀº ÀϹÝÀûÀÎ ¸Þ½¬µéÀº ¶óÀÌÆ®¸ÊÀ» »ç¿ëÇϰí ij¸¯Å͵鸸 ±×¸²ÀÚ ÅØ½ºÃ³¸¦ °¢°¢ ¸¸µé¾î¼­ »ç¿ëÇØ¿ä.
ij¸¯Å͸¶´Ù ±×¸²ÀÚÅØ½ºÃ³¶û ¶óÀÌÆ®±âÁØÇà·Ä, ¾ËÆÄ¸Ê Çà·Ä¸¸ °¡Áö°í ÀÖÀ¸¸é µÇ°í¿ä.
±×¸®°í ±×¸²ÀÚ µå¸®¿ì´Â ¸Þ½¬µéÀº ±¸ºÐÇØ¼­ ÇÊ¿äÇѰ÷¿¡¸¸ µå¸®¿ì°í¿ä.
±×·¯´Ùº¸´Ï µð¹ÙÀ̽º ¼³Á¤Àº ¸¹ÀÌ Æ²¸±¼ö ÀÖÀ»°Å¿¡¿ä.
µµ¿òÀÌ µÇ¾úÀ¸¸é ÁÁ°Ú½À´Ï´Ù.
_________________
ÁöÄ̼· nao
À§·Î
»ç¿ëÀÚ Á¤º¸ º¸±â ÂÊÁö º¸³»±â
ÀÌÀü ±Û Ç¥½Ã:   
Àá±è[?]    GpgStudy °Ô½ÃÆÇ À妽º -> ±×·¡ÇÈ ÇÁ·Î±×·¡¹Ö ½Ã°£´ë: GMT + 9 ½Ã°£(Çѱ¹)
ÆäÀÌÁö 1 Áß 1

ÀÌ ÁÖÁ¦¿¡ ´ëÇÑ Æ®·¢¹é ÁÖ¼Ò: (Âü°í)

±Û ÀÕ±â(½ÃÇèÁß): |

 
°Ç³Ê¶Ù±â:  
»õ·Î¿î ÁÖÁ¦¸¦ ¿Ã¸± ¼ö ¾ø½À´Ï´Ù
´ä±ÛÀ» ¿Ã¸± ¼ö ¾ø½À´Ï´Ù
ÁÖÁ¦¸¦ ¼öÁ¤ÇÒ ¼ö ¾ø½À´Ï´Ù
¿Ã¸° ±ÛÀ» »èÁ¦ÇÒ ¼ö ¾ø½À´Ï´Ù
ÅõÇ¥¸¦ ÇÒ ¼ö ¾ø½À´Ï´Ù


Powered by phpBB © 2001, 2005 phpBB Group