Screen 효과가 제대로 나타나지 않습니다.

2D, 3D, 다각형, 픽셀 등 게임의 그래픽 프로그래밍에 관한 포럼입니다.

Moderator: 류광

Locked
briscape
Posts: 54
Joined: 2004-12-23 18:54
Location: http://bl.na.mu
Contact:

Screen 효과가 제대로 나타나지 않습니다.

Post by briscape »

Image

안녕하세요.

위의 그림을 보시면 아시겠지만.. 빨간 화살표 부분은 Screen효과가 제대로 적용되는 반면에

텍스쳐의 까만색이 다른 텍스쳐를 가려버리는 현상이 발생합니다..

gpg에서 나온대로

Code: Select all

pD3DDev->SetRenderState(D3DRS_SRCBLEND, D3DBLEND_INVDESTCOLOR);
	pD3DDev->SetRenderState(D3DRS_BLENDOP, D3DBLENDOP_ADD);
	pD3DDev->SetRenderState(D3DRS_DESTBLEND, D3DBLEND_ONE);
옵션을 주었는데요..

ALPHABLENDENABLE 도 켜고꺼보고 ALPHATESTENABLE도 켜고꺼보고 다 했는데..

저렇게 나옵니다. 대체 왜그럴까요..

저 사각형들은 다 빌보드입니다. 순서는 무작위구요. ZBUFFER은 켜져있는 상태입니다.
- To be a better man...
비회원

Post by 비회원 »

저 현상은 빌보드의 Z축이 앞을 가리기 때문입니다. Z를 끄면 겹치는 현상이 발생해버리고요. 대안은 소프트 파티클입니다.
briscape
Posts: 54
Joined: 2004-12-23 18:54
Location: http://bl.na.mu
Contact:

그러면..

Post by briscape »

고정파이프라인으로는 저거 해결 못하는건가요?

제가 알기론 소프트 파티클은 파티클 빌보드가 다른 불투명 메시와 겹칠때

그 경계선을 부드럽게 해주기 위해서 쓰는거라고 알고있는데요

저건 그냥 단순히 폭발 파티클을 표현하기 위한 것인데도..

소프트 파티클을 써야 하는건가요?
- To be a better man...
nikola2
Posts: 886
Joined: 2005-07-12 01:19
Location: (주) 신규 소프트

Re: 그러면..

Post by nikola2 »

생각하신대로 소프트파티클하고 직접 관련은 없는 겁니다...
(관련있으려면 겹치는 2개의 오브젝트 중 어느 한쪽이 빌보드가 아니어야되죠...)

파티클/빌보드만 따로 떼어 보면 큰 어려움은 없고...아주 기초적인 해결방법만 씁니다...
파티클만 모아서...맨나중에 그리고...z버퍼의 쓰기기능만 꺼도 어느정도 해소되고..
깊이값에 맞춰서 먼거부터 가까운 순으로 소팅해서 그리면 더 직관적으로 해소됩니다..
집사람이 국력이다...
비회원

Post by 비회원 »

pD3DDev->SetRenderState(D3DRS_BLENDOP, D3DBLENDOP_ADD);
pD3DDev->SetRenderState(D3DRS_SRCBLEND, D3DBLEND_SRCCOLOR);
pD3DDev->SetRenderState(D3DRS_DESTBLEND, D3DBLEND_DESTCOLOR);

로 해보심이 어떨지..
어린양.
Posts: 8
Joined: 2007-09-02 16:27

훔..

Post by 어린양. »

저도 나무를 빌보드로 처리했을때

Z값이 적은 나무 뒤쪽으로 투명해야하는 면이

뒤의 나무들을 가리는 현상이 있었습니다.. (블랜딩의 기본 공식에 따르면 당연한걸지도--;;)

이문제 때문에 다시 정렬을 해야하나 생각하고 여러 군데 뒤적이다 이렇게 하니

잘되더군요...


DEVICE->GetDevice()->SetRenderState( D3DRS_ALPHATESTENABLE, TRUE );

DEVICE->GetDevice()->SetRenderState( D3DRS_ALPHAFUNC, D3DCMP_GREATEREQUAL );

DEVICE->GetDevice()->SetRenderState( D3DRS_ALPHAREF, 100 ); // 알파테스트값 변경..
pumpltup
Posts: 27
Joined: 2007-10-08 12:46
Location: 익투스게임즈

제가 봤을때에는...

Post by pumpltup »

빨간색으로 표시된 텍스쳐는 이펙트가 먹히지 않고있습니다.
뒷 배경이 검정색 배경이니, 텍스쳐 배경과 똑같이 보여서 이펙트가 그 텍스쳐만 먹힌것 처럼 보이는것 같습니다.

제 라이브러리에서는 이렇게 셋팅하여 사용하고 있으니 참고바랍니다..

Code: Select all

if ( !m_bEffect )  //이펙트 사용하지 않을때 (Screen)
{
g_Mng.m_DirX.GetD3ddev() -> SetRenderState( D3DRS_SRCBLEND, D3DBLEND_SRCALPHA );
g_Mng.m_DirX.GetD3ddev() -> SetRenderState( D3DRS_DESTBLEND, D3DBLEND_INVSRCALPHA );
}
else // 이펙트 사용시
{
g_Mng.m_DirX.GetD3ddev()  -> SetRenderState( D3DRS_DESTBLEND, D3DBLEND_ONE );
g_Mng.m_DirX.GetD3ddev()  -> SetRenderState( D3DRS_SRCBLEND, D3DBLEND_SRCALPHA );
}
		
http://www.ixtusgames.com
Spreading the gospel through Game
Locked