개선된 라이트맵 블러링 및 추가된 레이어 블러링

필드 데이타 자체는 한덩어리로 만들어져 있어도 실제 렌더링을 위해서는 (컬링 및 리소스 관리 때문에) 여러개의 오브젝트로 잘라서 가지고 있어야한다. 그러다보니 분리된 오브젝트 간에는 라이트맵 텍스쳐, 레이어의 알파맵 텍스쳐 경계 부분을 필터링(d3d및 그래픽카드에서 지원해주는)을 적용시킬 수 없다. 오브젝트 단위로 자르는 한은 어쩔수 없다고 생각했는데, 실시간적인 필터링은 못하더라도 전처리로 인접한 오브젝트간에 블러링은 못할 이유가 없네. 매쉬의 경우는 … More 개선된 라이트맵 블러링 및 추가된 레이어 블러링

와이드 스샷

시험삼아 모니터 두대에 걸쳐서 개발중인 게임의 창을 늘려보았다. 대략 가로 해상도 3516정도로. 캐릭터의 외곽선이 약간 어긋나보였다. 촛점이 안맞는것처럼. 캐릭터만 그런게 아니고 배경쪽 외곽선도 촛점 나간듯 어긋나 있었다. 흠..버그가 있군. 가만 생각해보니 일반 해상도일때도 외곽선이 약간 흐려보였다. 해서 야근하면서 쉐이더 코드를 열심히 뒤져보았다. 아웃라인을 투영하는 텍스쳐 좌표에 0.5 /width, 0.5/height를 더한다는게 버텍스 쉐이더에 더해버려서 선형보간과 원근보정을 … More 와이드 스샷

2차 사내 스트레스 테스트 후기

7월 30일 2차 스트레스 테스트를 실시했다. 기본적인 전투,이동 방식은 크게 바뀐것이 없었으나 아이템거래 기능은 내부적으로 완전히 바뀌었다. 퀘스트, 스킬, 각종 상태 템플릿, 상태를 발동시키는 아이템, 스킬 등이 추가되었다. 기본적으로 mmorpg에 들어갈 소위 말하는 ‘시스템(난 게임기획자들이 이 말을 쓸때 짜증나서 미칠거 같다.)’들이 들어간 것이다. 1차 테스트의 목적은 실제로 다수의 인원이 몰렸을때 FPS와 비슷한 스타일의 전투가 가능할지 … More 2차 사내 스트레스 테스트 후기

다이나믹 라이트

99년도에 최초로 퀘이크3를 접했을때, 나로 하여금  놀라자빠지게 만들었던 그것은 로켓런쳐에 붙어있던 유색광 효과였다. 지금이야 별거 아니겠지만 그 당시엔 정말 놀라웠다. 2001년도에 처음 엔진을 개발하면서 퀘이크의 유색광 효과는 꼭 넣으려고 마음 먹었었다. 실제로 코룸온라인과 묵향 온라인에 들어간 SS3D엔진에는 퀘이크와 유사한 다이나믹 라이트가 들어가 있다. 다만 로켓런쳐와 같은 무기가 없었기 때문에 퀘이크처럼 보일 일이 없었다. 코룸온라인에선 부분적으로 사용했고 … More 다이나믹 라이트

사내 스트레스 테스트

4월 10일 사내에서 175명의 직원들을 상대로 개발중인 게임을 공개했다. 동영상이나 pt자료는 공개한 적이 있었지만, 플레이 가능한 바이너리를 공개하긴 처음이었다. 여지껏 MMORPG에서 TPS(혹은 FPS)스타일의 전투를 도입한 사례는 없었다. 주변의 우려와 스스로의 불안감에도 불구하고 TPS전투 MMORPG를 표방하며 2007년 8월에 프로젝트를 시작했다. 사실 지금껏 한 순간도 우려하지 않았던 적은 없었다. 계산상으로는 가능해보였다. 허나 돌려보기 전에는 모르는 일. 이번 테스트는 … More 사내 스트레스 테스트

엔진 그림자 개선

일전에 일기장에 투덜댄 바, 그림자를 개선하고 있다. nVidia의 LiPSM샘플을 참고하여 일단 대충 구현은 했다. 원리가 이해되지 않아서 몇 일간 출퇴근시, 자기 직전, 운동할때, 열심히 생각을 해서 기본적인 원리는 이해했다고 판단. 코딩은 반나절 걸려서 끝냈다. 내가 확실하게 이해를 못해서 그런지, 퀄리티가 아주 맘에 드는건 아니다. 좀 더 개선을 해야하고 코드도 정리해야한다. 이 짓을 시작한 이유는 씬 … More 엔진 그림자 개선

설 연휴 작업 내용

금요일 로켓탄의 궤적을 캡슐로 하여 캐릭터 타원체와 충돌처리. 필요한 검색 코드 및 수학함수 추가 토요일 npc서버를 릴리즈로 빌드하다 오작동. 코드를 샅샅이 뒤졌으니 문제 발견 못함. 디스어셈블된 코드를 살펴보고 컴파일러가 옵셋을 잘못 계산했음을 발견. 프리컴파일드 헤더 다시 세팅하고 최적화 옵션 바꾸고 어쩌고 하다보니, 어느 순간 제대로 된다.–; 현재 풀 옵티마이즈 상태로 제대로 작동. 일요일 서버에서 로켓탄환 … More 설 연휴 작업 내용

피직 트랜스폼(캐릭터 스키닝) 64비트 SSE버젼 코드

소스코드 ———————————————————————————————————————————————— <physiq_transform_x64.asm> ———————————————————————————————————————————————— INCLUDE math_type_x64.inc .code ;void __stdcall PhysiqueTransformPosAndNormalAndUV(BYTE* pVertexResult,PHYSIQUE_VERTEX* pPhyVertex,DWORD dwVertexNum,DWORD dwSize,MATRIX4* pMatrixEntry) PhysiqueTransformPosAndNormalAndUV PROC pVertexResult:QWORD , pPhyVertex:QWORD , dwVertexNum:QWORD , dwSize:QWORD , pMatrixEntry:QWORD local   v3Normal : VECTOR4 local   v3Tangent : VECTOR4 ; backup xmm6 sub   rsp,32 movups  [rsp+0],xmm6 movups  [rsp+16],xmm7 mov    qword ptr[rbp+16],rcx mov    qword ptr[rbp+24],rdx mov    qword ptr[rbp+32],r8 mov    qword ptr[rbp+40],r9  mov   rcx,dwVertexNum or   rcx,rcx jz   lb_return  mov   r10,pPhyVertex mov   r8,pVertexResult; pVertexResult lb_loop_physique_num: xorps  xmm3,xmm3     ; v3Result movups  v3Normal,xmm3    ; v3Normal movups  v3Tangent,xmm3    ; v3Tangent … More 피직 트랜스폼(캐릭터 스키닝) 64비트 SSE버젼 코드

추석 연휴 작업 내용

금요일 (연휴 전날) 트리거 렌더링 코드 디버깅 -> 정상 작동 맵툴에서 퍼포몬스 체크용 폰트 화면 가장자리로 밀림 -> 정상작동 최근에 버텍스 버퍼 락을 완전히 없애고 쉐이더 기반으로 바꾸면서 생긴 버그들. 어쨌든 다 잡았다. (토요일) 현재의 툰 쉐이딩에 깔끔한 외곽선을 넣어보고자 이리저리 시도. 먼저번에 이미지 프로세싱 기반으로 시도했다가 영 지저분하게 나와서 , 이번엔 노말벡터랑 시선 벡터 … More 추석 연휴 작업 내용

BSP/PORTAL적용 결과

본점(http://yuchi.net)에 올린 글입니다. 게이버 따위에 자료를 올려줘야 할 가치가 있는진 좀 의문이긴 하지만 일단 올려봅니다. 제 홈피에서도 몇번인가 언급한적이 있고 KGC2006때 발표했었던 주제입니다. 툴을 이용해서 ROOM을 모델링하고 PORTAL을 자동생성, 공간 구분은 BSP를 이용하는 기술이죠. 그 동안 아이디어를 실제 프로젝트에 적용하는데 꽤 시간과 노력을 들였고, 이젠 안정화 단계에 접어들었다고 생각합니다. 해서 홈피 놀러오시는 분들에게 서비스 차원으로 … More BSP/PORTAL적용 결과