

쾌적한 캐주얼게임을 만들기 위한 연구 1
---------------------------------------------------------------------------------------------------------------------

D3DXCreateTextureFromFile(...........)함수의 이미지 사이즈별 퍼포먼스이다
테스트는 총사이즈가 같도록 사이즈별 그림 장 수를 맞춘것
각 사이즈별 10회의 평균을 잡았다
눈금 하나가 100ms이다
테스트 환경은 Intel P4 2.6G,512ram,GFX5200,win2000
DirectX9.c
요즘 그래픽카드는 512사이즈가 최적화 되있다는데
실제 테스트는 DX는 여전히 256사이즈의 텍스쳐에 최적화 되있는듯
단 이것은 로딩과 생성의 시간만 체크한 것이다
시간이 있으면 렌더링 퍼포먼스도....
모든일이 그렇지만,생각했던것과 실측은 언제든 맞는게 아니다
목표는 카트라이더와 같은 쾌적한 맵 로딩의 구현이다 new Vs boost::pool for(int i = 0;i < 1000000;i++)
2004-12-29 14:34:24
쾌적한 캐주얼게임을 만들기 위한 연구 2
---------------------------------------------------------------------------------------------------------------------
고정 사이즈 객체의 메모리 할당과 해체
{
CTexture* pTime = NULL;
pTime = new CTexture;
delete pTime;
}
릴리즈모드에서 테스트
파란막대:New ,적색막대 Boost::pool
NCGEngine에서는 boost를 사용함 랜더오브젝트 Z소팅 연구 갈색막대는 lIst 사용후 sort한것이고 파란막대는 multimap을 사용한 것이다 오브젝트갯수는 처음 500으로 시작하여 횟수가 증가할때마다 500씩 증가시켰다 100개 이하는 list가 2 multimap이 0 ms였다
2004-12-30 12:56:43
쾌적한 캐주얼게임을 만들기 위한 연구 3
---------------------------------------------------------------------------------------------------------------------
렌더링 파이프라인의 구성시
하지만 이것은 디버그 모드에서의 수치이고
릴리즈 모드는 모든경우에서 list+sort 가 빨랐다
결론은 "list + sort()를 써야한다" 이다
2005-03-27 10:57:42 저는 음악을 사랑합니다... 음악을 사랑하기에 트랙커의 길을 배워 볼까하는 생각도 있었습니다 하지만,제대로 된 사운드엔진하나 없는게 사실입니다 MILES Sound System을 사는것도 하나의 방법입니다만 음악을 사랑하는 엔지니어로써 남에것을 그냥 갔다 쓴다는것은... 저는 욕심많은 개발자입니다....직접 만들고 싶어졌습니다 다이렉트 사운드나 오픈 AL 샘플을 보고 똑같이 만들어도 MCI처럼 동시에 여러음을 처리할수 없었고 뭔가 제대로 이해를 못했습니다만 이제야 뭔가 알것 같습니다(예전에 개념을 모르고 덤볐다가 실패한적이 있습니다) 사운드는 관리자가 생명입니다...똑똑한 관리자... NCGE SoundSpace-1은 제가 처음, 제대로 만드는 첫번째 사운드엔진이 될것입니다 기본스펙 DirectSound,DirectSound3D,EAX2.0지원,ogg stream 지원,DolbyDigital AC3사운드 지원 에디터 제공 지금 공정은 약 20%입니다...웨이브화일을 로딩하고 다중 채널 플레이 관리자만 만들었을뿐입니다 엔진을 만든다는것을 그래픽쪽만을 한정하고 싶진 않습니다 지긋지긋한 사운드엔진과 툴 작업이 얼추 끝났다 계획이지만 미디사운드도 안되고 CD플레이 NetVoice도 녹음기능도 없다...온라인게임에서 필요 없는것은 거의 다 제거했다 아래 사진은 사운드 툴의 스샷이다,이것으로 세팅및 자체포멧을 만들고 게임 사운드 환경을 제작할 수 있다 주요 기능으로는 2D,3D사운드와 EAX2,0을 지원하며, WAVE Stream OGG Stream과 DolbyDigital AC3 Stream을 지원한다 멀티 스트리밍은 사운드카드에 따라 2~12개까지 지원한다 크리에이티브 인스파이어 5100 스피커에서 테스트를 대략 했는데 음 분리를 보니 만족스러웠다 이제 마일즈나 FMOD를 쓰기위해 적지 않은 외화낭비 좀 그만 했으면 좋겠다 마일즈와 FMOD와 비교를 해가면서 제작했다,사운드 퀄러티는 개인적인 생각에선 손색이 없으며, 버퍼 캐쉬 관리 및 자원관리를 당담하는 사운드관리자에 신경을 썼다 이것으로 사운드엔진은 더이상 보지 않을 것이다... 내가 매일 렌더웨어에 욕을 하지만 렌더웨어는 기본적으로 훌륭한 녀석이다 물론 렌더웨어로 하이퀄러티 게임을 내기위해선 극한까지 파고들어,나의 코드를 심어놓아야 한다는게 있지만 라이트맵도 섹터단위로 되기에 Max의 Render To Texture와는 비교가 안돌정도의 정밀한 라이트맵을 만들수 있다....물론 상당한 퀄러티를 위해서는 툴을 만들어야한다 그것이 내가 만든 LightMapOven(TM)이다 이제 문제는 라이트맵의 문제인 전체적으로 어두워진다는 문제이다 상쾌한 낮의 라이트맵을 얻기위해 나는 많은 문서를 보았지만 대부분이 뽀싸시 같은 후처리(렌더링을 걸고 그 이미지를 조작하는것)적인 방법이지만 후처리하지 않고 할수 있는 방법을 찾아내야한다 참고로 퀘이크 3 라이트맵은 기본 텍스쳐 와 라이트맵을 멀티플라이하고 스펙쿨라 맵을 ADD하는 방법을 쓴다 pvs는 렌더웨어에 자동 생성 프로그램이 있고 함수 몇개만 쓰면 된다 PVS는 이미 UVF코어 모듈에 삽입시켰다 버텍스 쉐이더를 쓰고 큐브맵을 썼다... 순전히 DX mind로,,, 가까이서 보면 못봐줄 정도인데 그것은 해결해야할 문제
사운드엔진...
---------------------------------------------------------------------------------------------------------------------
2005-03-28 21:51:30
SoundSpace-1
---------------------------------------------------------------------------------------------------------------------

이제 문서화와 튜터리얼을 만들어야하고 EAX오클루젼 기능을 붙히는 일만 남은거 같다
호환성을 위해 DirectSound를 사용하였다...다음에 기회가 있다면 OpenAL을 사용한다는
2005-07-23 01:56:05
UVF Roadmap
---------------------------------------------------------------------------------------------------------------------
Renderware 개발이야기
---------------------------------------------------------------------------------------------------------------------
2006-04-06 20:52:34
EMBM Test
---------------------------------------------------------------------------------------------------------------------
솔리드 모델에 EMBM적용 코드를 놓았다 아직 구현만 한지라...코드는 정리가 안되 엉망 렌더웨어를 사용함에도 불구하고 지형쪽은 장면관리정도만 사용 UGF에선 여기까지....집에서 만드는 UGFHD 는 Pallax Mapping까지 도전 위의 사진은 라이트맵을 굽기 위한 전처리 단계입니다,Sun,SkyDome,Ambient 라이팅 설정치들을 각각 작업자가 편리하도록 셋팅하는 과정입니다 라이트맵을 생성하는 것은 전적으로 렌더웨어에 맡기지만,라이트맵이 생성되고 나서는 저의 파이프라인으로 렌더웨어는 충돌메쉬와 트리구축 컬링만 당담하고 모든 렌더링은 제가 DirectX마인드로 만든 렌더링 파이프라인을 탑니다,,,,그 와중에 라이트맵 연산 방식을 바꾸기도 하고 쉐이더나 HLSL이펙터도 사용하는 겁니다
2006-04-11 18:03:20
EMBM Test 2
---------------------------------------------------------------------------------------------------------------------
2006-04-11 18:03:20
UVF LigtmapOven
--------------------------------------------------------------------------------------------------------------------




위의 사진은 스카이 에디터입니다...처음에는 인텔 문서를 참고하여 프로그램상으로 절차적 구름을 생성하려고 했으나...제 실력이 허접하여 이미지를 쓴거 보다 퀄러티가 않좋았습니다...그래서 툴에서 스카이돔의 레이어를 2개로 두어 각기 다른 속도로 스크룰시킵니다...툴에서는 텍스쳐와 스크롤속도를 조정할수 있습니다...그리고 스카이돔의 상단과 하부 색을 나누어 그중간 값은 인터폴레이션하며 셋팅값을 저장하고 날씨 메니저에서는 셋팅값에서 들어온 색의 인터폴레이션을 수행해서 트리거 발생시 하늘 색을 변화시킬수 있습니다
그리고 스카이박스 기능도 추가했는데요...툴에서 텍스쳐를 지정하고
스카이돔만 렌더링,스카이박스만 렌더링,함께 렌더링이 가능하도록 만들었습니다
원래 라이트맵 툴은 라이트맵을 굽기에만 사용하려고 했으나 제 파이프라인이 거의 지형엔진 처럼
확장 되어 버려서 워터 이펙터도 추가된 사진입니다...설정치에 의존하고 데이터 주도적으로
만들요량으로 제작되었습니다...게임에서는 다른 설정치들을 블랜딩하여 여러 환경 효과를 도모하게 만들어졌지만 사용하지는 않군요
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
헤드라이트 플레어을 바꾸자

이제 헤드라이트의 디테일이 상승하는것 만큼
헤드라이트 플레어도 바꿔야 하지 않겠는가
사진은 언더그라운드,콜린04,렐리스팟,그란4순인데
역시 순정차량에 어울리고 이쁜것은 그란쪽이다
지금 우리것은 콜린에 가깝다..이제 헤드라이트의
디테일을 보여줄수 있는 가늘고 이쁜것으로 바꾸자!
2004-06-15 09:11:18
큐브맵으로...
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

스페어 환경맵핑만 쓰다가 큐브맵을 시도해 보았다
텍스쳐는 LobbyCube ㅡ,ㅡ
목표는 실시간 렌더링된 텍스쳐일까나...
2004-06-16 23:33:35
리얼타임 이미지 프로세싱

픽셀쉐이더 1.4를 이용한 실시간 이미지 프로세싱
그란트리스모의 리플레이 처럼 멋진 리플레이를 만들고 싶어서...
프레임이 좀 버벅거린다 ㅜㅡ
2004-06-23 00:33:02
Nitro Effect

부스터 터지는 이펙트가 너무 설렁해서 바꿔봤는데,역시 이상하다
허나 실제로 보면 스샷보단 보기 좋다
럭셔리하게 흰색을 많이 넣어 보았다
2004-06-24 22:23:18
Real Time Environment Cubic Mapping
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

환경맵핑의 최정점인 리얼타임 입방체 환경맵핑을 해보았다...
물론 프레임을 많이 잡아먹는 괴물이지만
GFORCEFX나 X800같은 괴물 칩셉엔 껌이겠지만
그들을 위해서 준비한 것이다
물론 홍보효과도 될수 있는 것이다
이로서 우리가 선택할 수 있는 환경 맵핑은
스페어 환경맵핑 , 입방체 환경 맵핑 , 리얼타임 입방체 환경맵핑 이렇게 총 3가지 이다
이로서 온라인게임 그래픽에 정점에 설 수 있을까...
2004-06-30 23:54:17
수프라

오늘 희진씨 차가 나왔다
난 정말 희진씨의 천재성을 사랑한다
2004-07-02 00:03:03
커다란 문제의 해결
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

몇달을 속썩이던 텍스쳐문제가 단 몇분만에 해결된것 같다
MODULATE로는 텍스쳐의 알파가 채워진 부분도 메터리얼값이 먹어버려
흰색이 아니면 정확한 텍스쳐의 표현이 힘들었다
분명히 예전에도 이것으로 시험을 했으나 잘 되지 않았다
문제는 프레임버퍼가 알파채널이 있어야 한다....즉 디바이스를 생성할때
최소 4:4:4:4로 설정해야 했다...
2004-07-02 22:10:40
텍스쳐연산 문제를 해결한 후
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

2004-07-15 02:37:02
약간의 이펙트변경
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

브레이크등과 헤드라이트 이펙트를 변경해보았다
비치는 효과와 산란되는 효과
언리얼엔진에서는 게임분위기가 잘나도록
감마값을 조절한다고해서 0.80~0.90의 감마값으로 엔진쪽에서 세팅하는 코드를 넣었다
게임그래픽은 얼마나 게이머를 속이냐의 싸움같다
2004-07-20 10:32:58
알파블랜딩 크랙방지 코드
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
알파블랜딩 되는 녀석들과 되지 않는녀석들이
곁치는 경우,알파블랜딩녀석들이 깨진다
특히 빌보드가 골치를 섞이게 되는데..
나는 이제껏 무식한방법으로,그런녀석들에게 z버퍼를 무시하고 그렸다
지피지스터디에 갔더니 좋은게 올라와있더라
출처는
GPG-zupet님(http://www.gpgstudy.com/forum/viewtopic.php?topic=3771)
이고 또다른 자료는
noerror님(http://gamecode.org/arti...=2020&page=¤t=&field=tip)의 것이다
2PASS방식
D3D디바이스->SetRenderState(D3DRS_SRCBLEND, D3DBLEND_ZERO);
D3D디바이스->SetRenderState(D3DRS_DESTBLEND, D3DBLEND_ONE);
D3D디바이스->SetRenderState(D3DRS_ZFUNC, D3DCMP_LESSEQUAL);
프리미티브D3D디바이스->SetRenderState(D3DRS_SRCBLEND, D3DBLEND_SRCALPHA);
D3D디바이스->SetRenderState(D3DRS_DESTBLEND, D3DBLEND_INVSRCALPHA);
D3D디바이스->SetRenderState(D3DRS_ZFUNC, D3DCMP_EQUAL);
프리미티브멍청하게 왜 나만 모르고 있었는지....아침부터 별거 아니지만 나에게 필요한것을 얻음..
2004-12-29 16:51:35
2004년 한해를 마감하며
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

10대 게임을 만든걸로 만족해야겠군요
2004-10-07 14:29:03
Farewell
----------------------------------------------------------------------------------------------------------------------------------------------------







































최근 덧글