'프로그래밍/그래픽스'에 해당되는 글 28건

  1. 2011.01.25 Dx 기반 프로그램 위에 웹을 띄우려고 한다면
  2. 2011.01.05 dx에 swf를 올리려면....
  3. 2010.11.22 Freetype2 짜짤한 처리
  4. 2010.03.25 라이트 미들웨어
  5. 2010.02.27 FPSLIMITER
  6. 2009.12.16 Shader Study 다음 발표를 Chapter 24: The Importance of Being Linear 요걸 하려 하는데
  7. 2009.12.15 발표 PPT 정리 / Shader Study - Gems3-3 Blend Shadpes : Breaking the Limit
  8. 2009.12.15 발표 PPT 정리 / Shader Study - Gems3-2 Animated Crowd Rendering
  9. 2009.12.15 발표 PPT 정리 / 3D Programing Study Dx9 7-4,5,6,7,8
  10. 2009.12.15 발표 PPT 정리 / 3D Programing Study Dx9 7-1,2,3
2011. 1. 25. 16:14

Dx 기반 프로그램 위에 웹을 띄우려고 한다면


Dx기반 프로그램 위에 웹을 띄우려고 하면 여러 가지 방법이 있다.
 
주요 부분은 따로 끌어옴!!

1. 팡야와 같이 갈무리해서 쓴다
장점 : 파싱으로 얻은 결과를 gameui로 찍으면 화면은 더할나이 없겠죠?
단점 :  링크와 버튼 같은 경우도 전부 구현해 줘야 하구요 이경우는 엄청난 파싱코드가 난무하게 되며 당연히 게임의 속도를 까먹는 리소스 벌래가 되겠구요 페이지가 큰겨우에

비례해서 n * time이 되겠죠

결론 : ui에 신경을 많이 쓰고 싶은 게임이라면 한번쯤은 가능하다 하지만 조잡하고 속도가 떨어진다
하지만 게시판이 뜨는경우를 생각하면 게임진행사황이 거의 아니무로 이방법도 괜찮겠지만 제작시간이 오래 걸린다

 

2. ATL
장점 : 쉽게 뜬다 -_- 단 3줄? 다른 라이브러리기 때문에 웹페이지에 대한 정의를 내릴 필요가 없다.
단점 : 다른 라이브러리를 쓰기때문에 다른 제작자들의 컴파일러와 라이브러리 버젼이 일치해야 한다.
세부컨트롤이 불가능하므로 AtlAxWin을 그대로 쓰는것보다는 CAxWindow계열의 윈도우를 생성해내
obj를 붙여 제작하는게 더현실적이다. 예제 코드가 별로 없다.

결론 : 역시나 쉬운게 비지떡이라고 세부 컨트롤 즉 마우스 오른쪽 클릭을 막고 싶다던지 쉬프트키 누르고
 링크를 눌렀을때 같이 새창이 뜨는 경우를 막으려면 코드량이 좀 늘것 같고 ATL을 공부해야 한다. -_-;

ATL을 이용한 예제와 소스
http://mypage.sarang.net/phpBB2/viewtopic.php?t=215

 

3. COM
장점 : IWebBrowser2 계열로 쉽게 뜨고 쉽게 컨트롤이 가능하다
단점 : ATL과 마찬가지로 멤버 메소드(COM을 기반으로 함수라는 말은 메소드로 정정) 들이 세부적인 컨트롤을 못하므로
멤버 이벤트 메소드들을 제정의해서 써야한다. 그리고 ATL과 마찬가지로 COM을 공부해야 한다 ATL보다 더 자비심이 없는것 같다 ;ㅁ;

결론 : 많은 게임이 이 방식을 쓰고 있지만 제정의해서 써야하는건 마찬가지 그리고 단일객체만 선언해서는 효력이 별로 없는것 같다;

 

위와 같은 방식으로 제작한다면 윈도우(창)모드에서는 이상없이 잘 작동한다. 하지만 전체화면일때 웹을 구동하는 것이 문제인데, 몇가지만 신경써준다면 구현이 가능하다.

1.

DirectX 9.0c를 기반으로 작성됨. SetDialogBoxMode() 함수를 이용하여 풀스크린에서도 윈도우 컨트롤을 사용할 수 있게 한다. 단 이렇게 하면 프레임 저하가 있으므로 웹브라우저가 보이지 않을때에는 꺼줘야 한다.

코드:
m_pD3DDevice->SetDialogBoxMode(TRUE); 
또, SetDialogBoxMode() 함수를 사용하려면 D3DPRESENT_PARAMETERS에서 Flags에 D3DPRESENTFLAG_LOCKABLE_BACKBUFFER 를 추가해줘야 한다.

2.

방식은 간단히 우선 DX 수직동기화를 화면 주파수가 아닌 IMM 으로 맞추고
창모드에서도 켜줘야 하지만 다이얼로그 모드를 켜주구요
웹창이 뜰때만 우선 이펙트 스왑을 COPY로 바꿔 놓고 Present를 무려 4번 합니다

3.

  2번 방식을 잘 모르겠다면 그냥 프리젠트를 하지 않고 쓴느것도 하나의 방법,

4.

  몇몇 오류사항들이 발생하는데, 전체화면에서 포커스를 읽어서 최소화될때라던지.. 이런 버그들이 있는데, 일단은 그런 이벤트가 발생시에는 웹창을 강제로 종료시켜 주었다.

 

이정도...



2011. 1. 5. 16:44

dx에 swf를 올리려면....

음... 누구나다 gfx쓰면되는데라고 말하지만, 그건 유료라고,
그냥 올릴수 없을까해서 검색해보면

먼저 스케일폼 요즘 겜 회사서 새로 시작하면 다 쓰졍
http://www.scaleform.com/
gfx 3.3까지 나왔네.. 버그는 많이 잡았나.. 이전 개발하던 갬도 이거 썻는데...
한국에서 많이 사용해서 그런지 홈페이지에 한글 페이지도 있네...


그치만 좀 쉽고 한마디로 꽁짜로 써볼까 하고... 실상 UI 까지 제작할건 아니라서..

플래쉬 swf파일을 게임 상에서 보여주는 GUI 라이버러리
메일링 리스트
문서화 미흡
이게 gfx초기버전이라네여
http://tulrich.com/geekstuff/gameswf.html
이것도 유료던데 사용관련 말이 잘 없음..
 
2010. 11. 22. 11:35

Freetype2 짜짤한 처리


이전 프로젝트 할때도 프리타입2를 사용했는데, 이번 회사와서도 붙이는 작업을 했다.
기존에는 GDI를 쓰고 있었는데, 중국쪽에서 바꿔달라고 했는거 같다. 여튼 작업시작은 이러한데,

중국쪽 폰트를 하면서 추가된 내용과
여기는 한글자씩 미리 찍어두는 시스템이라 추가된 내용을 정리해야 할듯 하다.

중국쪽 폰트하면서 추가된 내용으로는

-- FreeType Font에서 FT_PIXEL_MODE_MONO 로드부분

-- [출처] FreeType Font에서 FT_PIXEL_MODE_MONO 로드부분.|작성자 샤르봉
특정폰트 특정크기 이하에서 폰트값이 0~256이 아닌 bit단위로 나오는 문제 해결

겜에서 사용하는 폰트 크기가 20pixel정도였는데 한글로 출력할때는 위와 같은 문제가 없었는데,
중문에서는 바로 문제가 되더라... 여튼 이거 위에꺼 보고 고쳤고

한글자씩 미리 찍어두는 시스템에서 추가된 내용으로는

http://www.winapi.co.kr/project/library/freetype/ft1.htm
http://www.winapi.co.kr/project/library/freetype/ft2.htm
http://www.winapi.co.kr/project/library/freetype/ft3.htm
http://www.winapi.co.kr/project/library/freetype/ft4.htm
http://www.winapi.co.kr/project/library/freetype/ft5.htm
http://www.winapi.co.kr/project/library/freetype/ft6.htm
http://www.winapi.co.kr/project/library/freetype/ft7.htm

위의 메뉴얼이 잘되어 있느니까 알아보고
문제는 베이스라인 계념인데 위에꺼 다 읽어봐도 결국 베이스라인 어캐 구한다는 없어서...

http://www.gpgstudy.com/forum/viewtopic.php?p=96321&sid=e6202af07a3e2b090a046918f41ae5f0
위의 글을 참고하면 될듯

int baseLine;

int ascender;
if (FT_IS_SCALABLE(face))
{      
  float y_scale = face->size->metrics.y_scale * 1.0f/64.0f * (1.0f/65536.0f);
  ascender = int(face->ascender * y_scale);
    
}
else
{
  ascender = int(face->size->metrics.ascender * 1.0f/64.0f);
    
}
  
baseLine = FONT_HEIGHT - ascender;


위의 소스가 답인듯.. 참고로 픽셀 단위


아직도 뭔가를 더 고쳐야 할듯한데 좀 봅시다.



아 그리고 폰트 라이버리 버전 올려서 달면 폰트가 깨끗해지는듯한 느낌이?? 킁.. 이건 아닌가. 여튼 최신 버전 사용합시다.

2010. 3. 25. 10:56

라이트 미들웨어

lightsprinthttp:
www.illuminatelabs.com/products/beast

요즘 GI가 대세인데, 직접 만들어 쓰자하니 앞이 잘 보이지 않아
라이트 미들웨어라도 보야 되는데, 뭐 이건 사야 볼수 있으니...
일단 저런게 있는거라도 알아두자
2010. 2. 27. 01:48

FPSLIMITER


이런 프로그램이 있다네요.

풀 프레임으로(돌아가는 60프레임 이나 특정 프레임이 고정되지 않은 게임들)는 게임들을 강제로 원하는 프레엠에 마쳐서 돌릴수 있는 기능을 한다고 합니다. 개발자용이기 보다는 특정 게임을 구동시키는데 프레임이 많이 나오는 경우 다운시켜서 게임을 하기 위해 실행시킨다고 하네요 심즈3같은 경우 좋은 카드 쓰시는분들은 100프레임 이상 나오는데, 이럼 카드가 발열이 심하니까 리미터를 걸어서 하면 좋다 이런식으로 예길 하시던데요.

이전에 쉐이더 스터디 댕길때 특정 프로그램을 쓰면 비디오 카드의 스펙을 조절하여 태스트 할수 있다고 성훈이 형이 말했던 기억이 나긴 하는데 알켜주신 프로그램명은 솔직히 까먹었네요... 머였지
2009. 12. 16. 14:50

Shader Study 다음 발표를 Chapter 24: The Importance of Being Linear 요걸 하려 하는데

아직 정리는 안 끝났는데, 집에두고 안가져 갈수가 있으니 일단 올려두고...

저번에 태우형 발표할때 웹에 자료들 잘 정리해서 하는걸 보니 있어버여서 나도 해봐야지 하며,
이번엔 발표준비과정을 좀 블로그에 남겨봐야지
ㅎㅎ
http://http.developer.nvidia.com/GPUGems3/gpugems3_ch24.html

흠.. 이론은 많은데 직접 적용해야되는 코드는 몇줄 안되는듯하다.
사실 이론들도 아래에 설명잘 되어 있던데 준비해 봐야지

관련 웹
http://http.developer.nvidia.com/GPUGems3/gpugems3_ch24.html
http://jufoot.egloos.com/1960058
http://cagetu.egloos.com/5148378
http://www1.devpia.com/Maeul/Contents/Detail.aspx?BoardID=51&MAEULNO=20&no=8350&page=1
http://blog.naver.com/sadiles/10073585297
2009. 12. 15. 11:37

발표 PPT 정리 / Shader Study - Gems3-3 Blend Shadpes : Breaking the Limit

2009. 12. 15. 11:31

발표 PPT 정리 / Shader Study - Gems3-2 Animated Crowd Rendering




2009. 12. 15. 10:51

발표 PPT 정리 / 3D Programing Study Dx9 7-4,5,6,7,8



2009. 12. 15. 10:39

발표 PPT 정리 / 3D Programing Study Dx9 7-1,2,3




발표 PPT 정리해서 올려봅니다.
하드에 보관해두다가는 언젠간 지울거 같아서..ㅜ.ㅜ...
스토리큐 다 좋은데 GIF 파일이 잘 안되는거 같네요