RF온라인에서 뽀샤시 효과는?

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

운영자: 류광

Locked
비회원

RF온라인에서 뽀샤시 효과는?

전체글 글쓴이: 비회원 » 2004-08-25 21:13

RF온라인의 옵션에 보면 뽀샤시 효과를 조정할수 있는 옵션이 있습니다.

약간 뭉게 지면서 밝아 지는 느낌이 나네요.

필터링을 사용한걸까요?? 아니면 감마값 조정에 의한 선명도 조정, 이것도 아니면 멀티 샘플링?

답답하네요.

비회원

전체글 글쓴이: 비회원 » 2004-08-25 22:02

요즘 한창 인기있는 효과인 글로우 이펙트 입니다. ( 픽셀셰이더 필수의 )

이 게시판에서 뽀샤시로 한번 찾아보세요..

관련 책이랑 자료가 나올겁니다.

가마수트라에도 real-time glow라는 제목으로 아티클리 올라왔는데..

이거 한국게임개발진흥원 사이트에 번역된 문서가 올라왔더군요...참고해보세요..

비회원

음.

전체글 글쓴이: 비회원 » 2004-08-25 22:15

정확한 용어를 모르더래도 검색을 시도하는 습관이 필요할 것 같네요.

'뽀샤시'로 검색해도 같은 내용의 게시물을 찾으실 수가 있으실텐데...

최근에 올라오는 질문들중 상당부분이 중복된 내용이라 안타까운 마음에 적어봅니다.

--쥐돌이

비회원

전체글 글쓴이: 비회원 » 2004-08-25 22:15

잘못 적었습니다.

http://www.gitiss.org/

여기네요..정체불명의 단체를 적어서 죄송합니다..-_-;

비회원

글로우 이펙트에 픽셀쉐이더가..

전체글 글쓴이: 비회원 » 2004-08-26 00:34

반드시 들어가는건 아닙니다.

BackBuffer를 얻어와서 이걸로 처리해도 그럭저럭 봐줄만한

효과를 낼수 있습니다.

Pixel Shader를 쓰면 좀더 고 퀄리티의 효과를 낼수도 있지만

실제 그냥 쉐이더를 쓰지 않아도 볼만 하더군요^^

비회원

backbuffer로 어떻게 가능하지요.?

전체글 글쓴이: 비회원 » 2004-08-26 11:43

질문을 올렸던 사람입니다. 부분적으로 모델에 글로우 효과를 주는 건 알고 있습니다.
검색이야 구글, gpgstudy, 가마슈트라, gamedev 다 뒤졌습니다.
제가 원하는건 RF처럼 전체적으로 주는 걸 말하는겁니다.

RF 뽀샤시 효과나 wow에서 죽었을때 그레이(흑백)나 셰이더로 했을까 하는 의문이 드네요.
directx 8.1에서 backbuffer로 어떻게 효과를 줄수있는지 설명좀 부탁드립니다.

아샬
전체글: 87
가입일: 2003-12-30 17:09
사는 곳: AHA Studio
연락처:

전체글 글쓴이: 아샬 » 2004-08-26 11:59

그냥... 단순히 BackBuffer를 Texture로 떠서

ATI Radeon SDK에 있던 예제 처럼 텍스처 해상도를 가지고 놀던지,

아니면 픽셀 쉐이더를 쓰던지 한다는 이야기가 아닐까요...

DirectX 8.0 한글판 도움말 문서를 참고해서 해본다면 (아마도 8.1에서 큰 차이는 없을 겁니다)

코드: 모두 선택

LPDIRECT3DSURFACE8 pBackBuffer;
pd3dDevice->GetBackBuffer(0, D3DBACKBUFFER_TYPE_MONO, &pBackBuffer);
이런 식으로 BackBuffer surface를 얻을 수 있구요.

코드: 모두 선택

LPDIRECT3DSURFACE8 pTextureSurface;
pTexture->GetSurfaceLevel(0, &pTextureSurface);
이런 식으로 텍스처에서 surface를 얻은 후,

코드: 모두 선택

pd3dDevice->CopyRects(pBackBuffer, NULL, 1, pTextureSurface, NULL);
Surface to surface 복사. 이렇게 하면 간단히 떠지죠.

코드: 모두 선택

pTextureSurface->Release();
pBackBuffer->Release();
마지막에 이런 식으로 release하는 거 잊지 마시구요 +_+

실제로 테스트를 해보지 않아서 -_- 될지 모르겠구요. 한번 실제로 해봐야겠네요 -_-;;;;;;;;;;;

혹시라도 CopyRects에서 문제가 생길까 싶어서 문서 내용을 인용하면..
주의

이 메소드는, 확대, 컬러 키, 알파 블렌드, 포맷 변환, 및 전송원 또는 목적지 직사각형의 몇개의 클리핑을 지원 하고 있지 않다. 모든 전송원직사각형 및 대응하는 목적지 직사각형이, 각각 전송원 및 목적지 표면내에 완전하게 포함되지 않은 경우에는, 이 메소드가 실패하는 것에 주의한다. 2 개의 표면의 포맷은 일치하고 있지 않으면 안 되지만, 사이즈는 차이가 나도 상관없다.

표면의 포맷이 스텐실 포맷의 경우, 이 메소드는 적용할 수 없다.

POINT 구조체에서는, 맨 왼쪽 위쪽의 x 좌표와 y 좌표를 정의한다. POINT 의 상세한 것에 대하여는, Microsoft? Platform Software Development Kit (SDK)를 참조할것.
아샬 님에 의해 마지막으로 수정되었습니다(총 2 회).
삶은.... 달걀.

A: 언제적 개그냐?
B: 오늘.

비회원

전체글 글쓴이: 비회원 » 2004-08-26 12:00

첫 답변 올렸던 사람입니다. 풀화면도 크게 다르지 않습니다..

글로우 소스를 어떻게 만들어내느냐가 문제인데..제 경우 렌더타겟 2개로 해결을 봤었습니다.

( 512사이즈 2개 정도면 되더군요. )

가마수트라 문서를 보셨다면 백버퍼를 StretchBlt로 뽑아오는걸 보셨을겁니다.

그걸로 렌더타겟A에다가 일단 전체 화면 이미지를 담아오고

B타겟에 A타겟이미지를 출력합니다. 이때 픽셀셰이더에서 이미지의 각픽셀의 값을 제곱을 시킵니다.

( 제곱 횟수가 늘어날수록 영역이 좁아집니다. )

칼라값을 제곱을 시키면 전체적으로 밝은부분은 더 밝게되고 어두운부분은 더 어둡게 되서

글로우 소스가 없더라도 대략의 글로우소스를 만들어 낼수 있습니다.

이 뒤로는 부분 글로우와 마찬가지로 블러먹이기이므로

B타겟의 이미지를 A와 B로 번갈아가며 블러를 먹여줍니다. ( 2-3번정도 먹여주면 좀더 좋은거 같은..)

그리고 화면에 다시 덮어씌우시면 전체화면 글로우가 됩니다.

IT EXPERT 3D 게임프로그래밍 - 김용준 저

의 백열광효과를 찾아보세요. 전체화면 글로우입니다.

PS..

RF의 뽀샤시 저사양(픽셀셰이더지원안되는) 컴에서도 되나요..? 테스트를 못해봐서..

아샬
전체글: 87
가입일: 2003-12-30 17:09
사는 곳: AHA Studio
연락처:

허거덩...

전체글 글쓴이: 아샬 » 2004-08-26 12:22

수정을 통해 코드(?)를 추가하는 동안 답글이 달렸네요 ^^;;;;

그냥 심심하니 하나 추가한다면...

첫번째 답글 다신 분(^^;;;;)이 언급한 StretchBlt는 DirectX 9 Graphics 에서 제공하는 메소드이고,

DirectX 8 Graphics에서는 CopyRects를 제공하고 있습니다.
삶은.... 달걀.

A: 언제적 개그냐?
B: 오늘.

비회원

고맙습니다.

전체글 글쓴이: 비회원 » 2004-08-26 13:27

답변 고맙습니다. 질문 올렸던 초보입니다.

제자리에서 RF온라인 패치서버에 연결 못하네요. 옆 친구는 되는데 어디 보안설정이 잘못 되었나 봅니다.
제자리가 저 사양 그래픽 카드라서 확인할려구 하는데 힘드네요.

RFOnline온라인도 픽셀셰이더를 사용했네요. 디렉토리를 찾아보니 BlurBlit.pso FilterBlit.pso파일이 있네요

셰이더는 이제 기본이 되어 가네요.

아샬
전체글: 87
가입일: 2003-12-30 17:09
사는 곳: AHA Studio
연락처:

잡담...

전체글 글쓴이: 아샬 » 2004-08-26 14:54

사실 저는...

RF online 클라이언트를 보면서

Shader가 기본이 되어 간다는 것 보다는

Giga Byte 대의 클라이언트 프로그램이 기본이 되어 간다

...........라는 느낌을 받았습니다..... 쿨럭.......
삶은.... 달걀.

A: 언제적 개그냐?
B: 오늘.

비회원

여기 있군요.

전체글 글쓴이: 비회원 » 2004-08-27 16:59

정확하게 필요한 예제는 김용준 저) DirectX 9 셰이더 프로그래밍 chapter 7장 포스트 이펙트에 나와있더군요.

다이렉트 9.0예제인데 8.1로 조금만 고치면 돌아 갈것 같습니다.

사용자 아바타
김용준
전체글: 53
가입일: 2004-06-16 13:47
사는 곳: 한국콘텐츠진흥원
연락처:

좋은 자료가 있습니다.

전체글 글쓴이: 김용준 » 2004-08-27 17:11

http://www.dexgame.com 의 3D작품 메뉴에 보시면 macwin님이 올린 LightGlare소스가 올라와있습니다.

아무런 확장, 셰이더 없이 만든 것이니 한결 범용성이 있지 않을까요?

비회원

Re: 좋은 자료가 있습니다.

전체글 글쓴이: 비회원 » 2004-10-12 14:42

김용준 작성:http://www.dexgame.com 의 3D작품 메뉴에 보시면 macwin님이 올린 LightGlare소스가 올라와있습니다.

아무런 확장, 셰이더 없이 만든 것이니 한결 범용성이 있지 않을까요?
소스는 없네요..
혹시 소스 구할 수 없나요?
소스를 봐야 범용성을 따지든 말든 하죠 ^^

좋은 하루 되세요~

비회원

소스 있습니다.

전체글 글쓴이: 비회원 » 2004-10-12 19:10

dexgame의 자료실에 천영호님이 올린 소스가 있습니다.

--아샬

ke7789
전체글: 224
가입일: 2003-03-26 21:21

전체글 글쓴이: ke7789 » 2004-10-12 19:41

DirectX 9.0c의 PostImageProcessing에 모든게 있습니다.
그리고 GPGGems에 보시면 Fixed모드에서도 구현가능한 대안이 제시되어 있습니다. 쉐이터로 구현하신 다음에. fixed로 구현하여 완성하는것도 괜찮구요. 좀더 높은 퀄리티를 원하신다면 per-pixel lighting과 혼합하여 쓰시면 좋습니다.

비회원

전체글 글쓴이: 비회원 » 2004-10-13 13:47

그리고 GPGGems에 보시면 Fixed모드에서도 구현가능한 대안이 제시되어 있습니다
gpg몇권에 어떤 제목으로 나와있죠?

찾아봤는데 잘 모르겠네요.

einzero
전체글: 119
가입일: 2004-06-22 15:37

전체글 글쓴이: einzero » 2004-10-13 14:07

GPUGems 가 아닐까 하네요 ^^;
* 인생은 열혈 *

ke7789
전체글: 224
가입일: 2003-03-26 21:21

전체글 글쓴이: ke7789 » 2004-10-13 14:16

헉 그러네요 죄송. GPUGems맞습니다.

비회원

으음..

전체글 글쓴이: 비회원 » 2004-10-19 17:38

비회원 작성:
김용준 작성:http://www.dexgame.com 의 3D작품 메뉴에 보시면 macwin님이 올린 LightGlare소스가 올라와있습니다.
macwin의 소스를 보니, 주위 픽셀과 보간하는 계산만 되어 있더군요.
가우스마스크를 사용 한 부분은 없어보이네요.
저도 똑같이 따라해봤는데, (필요없는얘기같지만DX로..) 백열광은 커녕
뿌옇게 먼지낀것 같은 결과가 나오는군요 ^^
macwin님은 가우스마스크를 사용 하지 않은게 확실 한건가요?
제가 GL은해보지 않아서, 대충 보고 예상 파악한건데..
제가 잘못 파악한것인가요..

그리고, 글로우텍스쳐를 그릴때, 알파채널을 따로 안두고, 스테이지설정을 다음과 같이 하였습니다.
D3DRS_SRCBLEND, D3DBLEND_ONE
D3DRS_DESTBLEND, D3DBLEND_INVSRCCOLOR
처음에는 이렇게 하면 밝은 부분은 불투명해지고,
어두운 부분은 투명해지므로, 전체적인 밝기는 증가하리라는 예상이였습니다.
하지만, 중간명암부분을 생각치 못했습니다.
반투명한 회색이 덮어져 그부분은 오히려 더 어두워지는것 이였습니다.

Locked

접속 중인 사용자

이 포럼을 보고 있는 사용자: Bing [Bot], 손님 2 명