음.. 오늘은 걍 눈 효과를 넣어 봤습니다..
눈 효과

어려운건 없고.. 그냥 용책에 있는걸 배꼇기 때문에...
설정 맞추는게 햇갈렸지만, 그방 ok
음..... 그런데 좀 언벨런스한 느낌이 드네요
석양에..... 눈이라... 음...

참고로 현재 이 프로그램의 목적은
Eco 게임맵같은거 찍어내는 맵툴 프로그램입니다...
음.. 이제 보니 바다효과는 너무 오버해서 만든 느낌이 드네요.. >_<)
에밀크로니클 온라인 게임중
(에밀크로니클 온라인의 눈효과와 바다 효과)

처음 snowball 크기는 0.25f 라.. 눈 2000개 뿌려야 보일듯 말듯..
당연히 프레임은 2,3 을 왔다갔다 해서..

눈을 200개로 줄이고, 크기를 5.0f 로 늘렸습니다..

결과적으로 FPS 도 잡고, 눈효과도 주고...

내일은 비를 한번 도전 한뒤...
(이것도 만만할꺼 같진 않고.. 뭐 현재 파티클 소스 조금 고치면 되지만 그럼 재미 없기에..
쉐이더를 써볼까 합니다만... ... 걍 파티클로 갈까... 고민중입니다.)

그리고 본격 타일 뜯어고치기..
속성이나 Object 처리야.. 이전 2D 맵툴작업때 한거 수정하면서 옮겨오면 되니...
상관없을꺼 같구요..

음... 4월 13일 오사카 일어 학교 수업시작인데 그 이전에 완성 되려나...

현재 작업줄인 툴작업에서
당연히 되겠지라고 방치하다가 뒷통수 맞은 문제점 입니다.


음.. 그러니까.. 원래 안개 설정할때 CColorDlg 란 공용 컨트롤을 사용해서 DoModal 을 할려고 했지만.. 왠지 모르게 위 그림처럼 창이 안뜨더군요....

이것저것 찾아보다가..


풀화면에서 Dialog띠우기 팁 입니다. (DX9.0) 2005/05/25
http://www.doopal.net

안녕하세요 볼따구 입니다.


풀화면에서 가끔 Dialog를 뛰어야 하는 경우가 생깁니다.
9.0 이상 버젼에서는 DX차원에서 지원을 합니다.

하지만, 몇가지 제안이 있기 때문에 실제로 적용시키는걸 잘 모르는분들이 있어서
한번 올려봅니다. ;;;

D3D디바이스를 생성할때
D3DPRESENT_PARAMETERS 인자중에 몇가지를 셋팅을 해야 합니다.
[1] SwapEffect = D3DSWAPEFFECT_DISCARD;
[2] BackBufferFormat = D3DFMT_X8R8G8B8; 또는 D3DFMT_X1R5G5B5, D3DFMT_R5G6B5
[3] Flags        |= D3DPRESENTFLAG_LOCKABLE_BACKBUFFER;

위에 옵션을 셋팅해서 디바이스를 생성한후에
D3DDevice->SetDialogBoxMode( TRUE );  이렇게 디바이스에 DialogBox를 사용한다고 해 놓으면
풀화면에서도 잘나오는걸 확인할수가 있을겁니다.

즐프~
(출처 : http://proline1.cafe24.com/zeroboard/view.php?id=data&no=49)

라고 SetDialogBoxMode를 true로 하라길래 수정 했지만 역시 변한게 없었습니다.

그러다가....
정말 우연히...
alt 키를 눌렀는데 떠지더군요.   orz

대략 창을 띄울때 DirectX 렌더링으로 순위가 뒤로 밀린건지...
잘 알 수는 없지만.. 원인을 알았으니 고치는건 쉽죠

CColorDialog dlg(CC_FULLOPEN);
PostMessage(WM_SYSKEYDOWN, VK_LMENU, 0);
dlg.DoModal();
 
DoModal 직전에 강제로 Alt 키를 눌러서 포커스가 메뉴로 가게 했습니다..
그러니..

제대로 나왔습니다.....

About 상자도 이렇게 처리하니 잘 뜨는군요.

// App command to run the dialog
void CMapTool_3DApp::OnAppAbout()
{
 CAboutDlg aboutDlg;
 PostMessage(NULL, WM_SYSKEYDOWN, VK_LMENU, 0);
 aboutDlg.DoModal();
}

그리고.. FileDlg 공용박스는... 왠지 저거 안해도 제대로 나오더군요..
MFC 버그인가....

하지만 일단 안전을 위해 PostMessage 를 해두는것도 나쁘진 않을꺼 같네요.

비 내리는 쉐이더 효과입니다..... 일단.. 뭐랄까.. 눈속임..
음... 이걸 맵툴에 씌어버리면...

아니 거의 맵툴 작업이 아닌..
개인적 3D 공간 만들기가 되어버리는 작업이 되어가는군요..

안개 효과도 레이어만 넣어주면 끝나고

눈은 용책에 파티클로 표현하는거 있으니.. 그걸 넣을까 생각도 해봤지만..
그럼 왠지 재미없을꺼 같고...

위의 비 효과의 출처
http://developer.download.nvidia.com/SDK/9.5/Samples/DEMOS/Direct3D9/src/HLSL_RainbowFogbow/docs/RainbowFogbow_UserGuide.pdf
http://developer.download.nvidia.com/SDK/9.5/Samples/3dgraphics_samples.html


문제는... 현재 작업하는 노트북이..
그래픽이 인텔 GMA 3100X 라....... 게다가 셀러논이라....

http://developer.download.nvidia.com/SDK/10.5/direct3d/samples.html 에 있는..
DirectX 10 예제의 Rain 알고리즘 적용 이라던가..
(지오메트릭 쉐이더를 사용하니까 DX9에선 안돌아간다는군요... ㅠ_ㅠ)

가끔 ATI 예제 가끔 돌아가지 않을때가 있고
... 쩝.... orz

그렇다고 여기서 ... 일본에서 노트북 가격 보니.. 돌겠더군요.. ㅠ_ㅠ

Real-time water rendering - introducing the projected grid concept

Master of Science thesis in computer graphics, March 2004

Author: Claes Johanson
Supervisor: Calle Lejdfors, Department of Computer Science, Lund University

The thesis was conducted in cooperation with Saab Bofors Dynamics. Magnus Anderholm was supervisor at SBD.

Techdemo

Download

Demo application (win32 binary + textures + source, 4.25MB)

For full functionality a Radeon 9500 or better GPU is required. Lesser cards have to settle with normals generated on the CPU with a lower resolution. A fully compliant DirectX8 card is the bare minumum.

Images

These are a couple of screenshots from the techdemo running on a Radeon 9700.




Thesis paper

Abstract

This thesis will examine how a large water surface can be rendered in an efficient manner using modern graphics hardware. If a non-planar approximation of the water surface is required, a high-resolution polygonal representation must be created dynamically. This is usually done by treating the surface as a height field. To allow spatial scalability, different methods of “Level-Of-Detail” (LOD) are often used when rendering said height field. This thesis presents an alternative technique called “projected grid”. The intent of the projected grid is to create a grid mesh whose vertices are even-spaced, not in world-space which is the traditional way but in post-perspective camera space. This will deliver a polygonal representation that provides spatial scalability along with high relative resolution without resorting to multiple levels of detail.

Download

Paper (low detail, 743 kB)
Paper (high detail, 1.73 MB)



출처 : http://graphics.cs.lth.se/theses/projects/projgrid/


잡설.... 아.... 이렇게 힘든거일줄은 몰랐네요

+ Recent posts