블로그 이미지
이태원에서 사는 다섯식구의 무직 가장. 흰둥에미

카테고리

분류 전체보기 (184)
Itaewon (2)
ryu's?? (1)
20121210이전 (20)
20130827이전 (147)
soo'study (13)
Total34,023
Today5
Yesterday5

'soo'study/생각'에 해당되는 글 11건

  1. 2014.04.17 면접 당황 질문 - 1
  2. 2014.03.10 BSP Rendering
  3. 2014.02.27 BSP 텍스쳐 맵핑
  4. 2014.02.20 VTF - DXT1 format
  5. 2014.02.05 doxygen 설치
  6. 2013.12.09 CS : GO 총기들의 리코일 패턴 등.
  7. 2013.11.21 FPS 맵을 만들자 - 3
  8. 2013.11.21 정규표현
  9. 2013.11.11 프로젝트 환경 재설정.
  10. 2013.10.11 FPS 맵을 만들자 - 2

1. 슈도 랜덤과 가우스 랜덤(가우스 분포 랜덤)에 대해 설명할 수 있나요.?

.... 잘모르겠습니다.


2. 가우스 랜덤이란 난수 발생이 정규분포를 갖는 것을 의미합니다. 그럼 슈도 랜덤을 이용해 가우스 랜덤 수를 만들수 있을까요?

.... 안될 것 같습니다.


----------------------------------------------------

질답은 이렇게 끝났다.


슈도 랜덤은 컴퓨터를 이용한 일반적인 난수 발생을 의미한다.

여기서 '일반적'이란 c 라이브러리의 시드를 이용한 테이블 참조인(1) rand() 함수를 이용한 방법같은 컴퓨터를 이용해 난수처럼 보이는 수를 발생시키는 방법.(2)


우선 정규 분포에 대해 위키나 웹의 대부분은 가우스(또는 가우시안) 분포라고 규정하고 있음.

가우스 분포는 수집된 데이터의 분포가 평균으로 갈수록 빈번함을 나타내게 되며, 매개 변수에 따라 분포의 형태가 바뀌기도 함.(3)


당황해서 2번에 대한 대답을 안된다고 해버렸지만, 컴퓨터로 수학적인 왠만한건 다된다고 생각하기에 된다고 대답했어야 함.

그럼 질문이 이어져서, 이유에 대해선 또 막혔겠지만..


그럼 가우스 랜덤수를 어떻게 발생시키냐에 대해 생각해보자.

매개변수로는 최소, 최대 값이 있을테고 표준 편차가 필요하겠다. 몇개의 난수를 발생시킬지도..(4)

쉽게 표준 편차도 빼고, 최소와 최대만을 이용하면, 

 a - 각 값들의 분포 비율의 역수를 값에 대한 가중치로 한다.(5)

 b - 낮은 비율로 나타나는 쪽을 -1, 높은 비율로 나타나는 쪽을 1로 하는 factor를 만들어 낸다.(-0.5 ~ 0.5도 좋고 정규화의 느낌으로.)

 c - 발생되는 난수(슈도 랜덤을 이용한)에 대해 factor*가중치를 누적시키며, 0에 가깝게 만들어 나간다.

      이때, 정확히 0이 나오기는 힘들기에 해당 값을 쓸지 말지 결정하는 기준이 필요할 듯 하다.

      (누적된 값이 0을 기준으로 어느정도 멀어지면 reject 하는 방식 같은..)

일단 알고리즘에 대한 것은 직접 작성한 것으로 맞는지 틀린지도 모른다. 하지만 가우스 분포에 대해 알고 갔다면, 이런식으로 대답하지 않았을까 한다. 다만 버벅였겠지만...


이제 여기서부터는 웹질을 통해 알고리즘을 알아보자.

내일....--;;


주.

(1) 정확한 의미는 아닐수도 있지만, 내가 이해한바에 따라 줄여서 씀

(2) 즉, 좀더 랜덤한 많은 방법들이 있지만 사실상 진정한 랜덤은 아니며, 동일한 수열을 발생시킬수 있음.

(3) 위키를 보면 좀 더 잘 나와있음.

(4) 위키는 평균값과 표준편차가 매개변수라지만, 실제로 랜덤수를 사용하는 경우는 특정 범위의 수를 추출하는 경우가 더 많기에, 평균(최대,최소가 fix되지 않는)값보단 최대, 최소로 하는게 나을 듯.

(5) 이산적으로 값들을 지정해 테이블을 만들어 주고 발생되는 값에 대해 보간하던지,

     표준편차를 이용해서 내부적으로 발생되는 난수마다 계산을 해주던지 하면 될듯..

신고

'soo'study > 생각' 카테고리의 다른 글

면접 당황 질문 - 1  (0) 2014.04.17
BSP Rendering  (0) 2014.03.10
BSP 텍스쳐 맵핑  (0) 2014.02.27
VTF - DXT1 format  (0) 2014.02.20
doxygen 설치  (0) 2014.02.05
CS : GO 총기들의 리코일 패턴 등.  (0) 2013.12.09
Posted by 흰둥에미

BSP Rendering

soo'study/생각 / 2014.03.10 22:13

Source BSP 맵의 파싱 및 렌더링.

leafface와 displacement 데이터와 그들의 텍스쳐, 라이트맵 까지..


displacement들간 크랙이 심함, 위치 계산이 잘못된 건지, 아니면 원래 저정도의 크랙이 있는건지 확인필요.

displacement의 라이트맵도 제대로 된것 같지 않음. 똑같은 땅을 표현하는데 색이 달라짐.


texture는 wrap 모드로, lightmap은 clamp !!!

신고

'soo'study > 생각' 카테고리의 다른 글

면접 당황 질문 - 1  (0) 2014.04.17
BSP Rendering  (0) 2014.03.10
BSP 텍스쳐 맵핑  (0) 2014.02.27
VTF - DXT1 format  (0) 2014.02.20
doxygen 설치  (0) 2014.02.05
CS : GO 총기들의 리코일 패턴 등.  (0) 2013.12.09
Posted by 흰둥에미
이놈의 텍스쳐 맵핑땜에 삽질에 삽질을..

텍스쳐 좌표를 위한 정보로는 TEXINFO Lump를 얻어오면,

textureVector 라는 것이 있다.

2 by 4 행렬로서 각 행의 첫 세 원소는 텍스쳐 좌표계, 마지막 원소는 쉬프트 값이다.

이전에 LeafFace로 삽질하면서, 텍스쳐 좌표 계산하는 걸 여러번 바꿨더니 뭐가 맞는지 모르겠어서 HammerEditor를 이용해서 공부.

결론은 

U = DOT(VectorPosition, textureVector[0]) + textureVector[0][3]) / texture의 너비

V = DOT(VectorPosition, textureVector[1]) + textureVector[1][3]) / texture의 높이


아무튼 텍스쳐는 이제 제대로 입혀지지만....

좌표계 문제 두둥. 월드가 뒤집혀 있다.

포지션, 노멀, 텍스쳐 좌표, 플레인, 바운딩 박스등... 다 바꿔줘야할 듯.

아마 와인딩 오더도..


뒤집힌 월드 고치는데 괜히 삽질했다.

인터넷으로 쓸데없이 swizzle을 보고선, 안맞는 텍스쳐 좌표 맞춘다고 시간만 허비..

swizzle도 y=z, z=-y 할 필요 없고, 심플하게 y, z 바꿔주고, ccw 컬링하면 된다.


신고

'soo'study > 생각' 카테고리의 다른 글

면접 당황 질문 - 1  (0) 2014.04.17
BSP Rendering  (0) 2014.03.10
BSP 텍스쳐 맵핑  (0) 2014.02.27
VTF - DXT1 format  (0) 2014.02.20
doxygen 설치  (0) 2014.02.05
CS : GO 총기들의 리코일 패턴 등.  (0) 2013.12.09
Posted by 흰둥에미

VTF - DXT1 format

soo'study/생각 / 2014.02.20 22:35

DXT1 format 파싱

VTF 관련 내용은 우선 패스하고, DXT1 포맷에 대해


BGR565 컬러 두개 + 16개의 pixel의 컬러를 인덱싱 할 32bits(2*16)

1. BGR565컬러 두개를 추출

  - color1, color2

2. 위 두 컬러를 보간하여 두개의 컬러를 더 추출

  - color3 = 2/3*color1 + 1/3*color2,     color4 = 1/3*color1 + 2/3*color2

     근데 여기 저기 찾아봤는데 보간방법이 조금 다르다. color1과 color2의 색값 크기에 따라 달라짐

3. 4 by 4 pixel에 대해 인덱스를 참조하여 색 값 결정


참고 - http://www.fsdeveloper.com/wiki/index.php?title=DXT_compression_explained

신고

'soo'study > 생각' 카테고리의 다른 글

BSP Rendering  (0) 2014.03.10
BSP 텍스쳐 맵핑  (0) 2014.02.27
VTF - DXT1 format  (0) 2014.02.20
doxygen 설치  (0) 2014.02.05
CS : GO 총기들의 리코일 패턴 등.  (0) 2013.12.09
FPS 맵을 만들자 - 3  (0) 2013.11.21
Posted by 흰둥에미
TAG DXT1

doxygen 설치

soo'study/생각 / 2014.02.05 03:54

몇 번의 doxygen 설치를 해봤지만, 정리해 놓은 문서가 하나도 없어 정리함.


1. doxygen을 설치 - http://www.stack.nl/~dimitri/doxygen/download.html 에서 플랫폼에 맞게 다운받아 설치


2. Graphviz 설치 - doxygen에 의해 생성된 문서에 다이어그램등의 이미지를 원한다면

                          http://www.graphviz.org/Download..php에서 역시 플랫폼에 맞는걸 다운로드 후 설치


3. doxywizard를 실행하여, 설정 - 영어이긴 하지만, 잘 읽어보고 설정하면 됨.

   % comment 1 : Destination Directory로 설정한 곳에 아웃풋이 생김.

   % comment 2 : 혹시 인코딩이 깨진다면, Expert-Input에서 INPUT_ENCODING을 바꿔볼 것 (UTF-8이라면 CP949쯤으로)

   % comment 3 : Expert-Dot에서 DOT_PATH에 Graphviz의 실행파일이 위치한 디렉토리를 설정해줘야 이쁜 그림이 나옴.


4. Run-Run doxygen을 클릭하면, 문서가 생성된다.

   index.html을 클릭하면 문서화 된 걸 볼 수 있음.

   pdf나 그 외 아웃풋은 나중에 필요하면....


5. wizard로 생성한 파일을 적절한 폴더에 save 해주면, Doxyfile이 생성된다.

    따로 doxywizard를 실행시킬 필요 없이, 커맨드라인에 doxygen Doxyfile이라 치면 문서화 됨.

    이 Doxyfile을 잘 작성해 놓는다면, 아무 프로젝트에서나 복사해서 쓸 수 있다.



  

   

   

신고

'soo'study > 생각' 카테고리의 다른 글

BSP 텍스쳐 맵핑  (0) 2014.02.27
VTF - DXT1 format  (0) 2014.02.20
doxygen 설치  (0) 2014.02.05
CS : GO 총기들의 리코일 패턴 등.  (0) 2013.12.09
FPS 맵을 만들자 - 3  (0) 2013.11.21
정규표현  (0) 2013.11.21
Posted by 흰둥에미

http://imgur.com/a/m1pz2/noscript - Patterns (격발 패턴)
http://imgur.com/a/mzpuh/noscript - Compensation Curves (Mouse Movement) (패턴에 따라 연사시 마우스의 움직임)
http://imgur.com/a/pKFeR/noscript - Inverted Compensation Curves (마우스 거꾸로 쓰는 사람을 위한 마우스 움직임)


출처 - http://steamcommunity.com/sharedfiles/filedetails/?id=200670434#187419

신고

'soo'study > 생각' 카테고리의 다른 글

VTF - DXT1 format  (0) 2014.02.20
doxygen 설치  (0) 2014.02.05
CS : GO 총기들의 리코일 패턴 등.  (0) 2013.12.09
FPS 맵을 만들자 - 3  (0) 2013.11.21
정규표현  (0) 2013.11.21
프로젝트 환경 재설정.  (0) 2013.11.11
Posted by 흰둥에미

정확하게 말하면 지금은 bsp맵을 파싱중.

처음에는 brush들로 직접 구성하려 했지만, 중간에 멘붕을 겪고(BTree구성에서 헤맴)


게임에서 쓰는 bsp 바이너리를 파싱 중.

쉬운걸 우선 해본다고, GoldSrc에서 사용하던 맵으로 하다가 한참 헤맴.

GoldSrc용 BSP와 지금 나오는 BSP 파일의 구조가 다른듯.

우선 헤더가 다름.


우선 Go on.


신고

'soo'study > 생각' 카테고리의 다른 글

doxygen 설치  (0) 2014.02.05
CS : GO 총기들의 리코일 패턴 등.  (0) 2013.12.09
FPS 맵을 만들자 - 3  (0) 2013.11.21
정규표현  (0) 2013.11.21
프로젝트 환경 재설정.  (0) 2013.11.11
FPS 맵을 만들자 - 2  (0) 2013.10.11
Posted by 흰둥에미

정규표현

soo'study/생각 / 2013.11.21 01:06

학교 다닐때 부터 (꽤 오래전..), 제대로 공부해야지 해야지 하다가

이제야 조금씩 보고 있네.

컴파일러 수업할 때 열심히 들을껄


VectorSubtract(s1, s2, d);를 d = s1 - s2;로 바꾸고 싶다.

캡쳐문법을 모르고 자꾸 { }로 해서 안됐다.

다른 편집기에선 모르지만 vs2012에서는 ()로 캡쳐


찾는식에 VectorSubtract\(([^,]+),[ ]*([^,]+),[ ]*([^)]+)\);

바꿀식에 $3 = $1 - $2;


신고

'soo'study > 생각' 카테고리의 다른 글

CS : GO 총기들의 리코일 패턴 등.  (0) 2013.12.09
FPS 맵을 만들자 - 3  (0) 2013.11.21
정규표현  (0) 2013.11.21
프로젝트 환경 재설정.  (0) 2013.11.11
FPS 맵을 만들자 - 2  (0) 2013.10.11
FPS 맵을 만들자.  (0) 2013.10.11
Posted by 흰둥에미

가끔 바이너리를 만들기 위해선, 

 1. svn뒤져서 최신에 잘 동작했던 부분을 찾고,

 2. 해당 코드 받아서 빌드하고,

 3. 필요없는 파일 지우고, 압축의 프로세스로 인해 고통 받았음.


그래서 프로젝트 환경 개선 중.

큰 그림은

 ProjectRoot - Engine - Docs : 문서

                               - Src : 소스

                               - Resource : 엔진에서 사용할 리소스

                               - Obj : $(Configuration) 하위에 각각의 빌드 중간 파일들이 들어감.

                               - Lib : 빌드된 라이브러리 파일(아직까진 스태틱으로)

                - TestProj - Docs : 문서

                               - Src : 소스

                               - Resource : 게임에 필요한 리소스들이 들어갈 듯.

                               - Obj : $(Configuration) 하위에 각각의 빌드 중간 파일들이 들어감.

                               - Bin : 빌드된 실행 바이너리

                       - inc : Engine의 헤더파일들 ( TestProj에서 참조하기 위해 )

                       - lib : Engine의 빌드된 라이브러리 ( 상동 )


                     * Engine의 Resource와 TestProj의 Resource를 어떻게 처리할 지,

                       우선 Engine에는 shader, font, ui에 필요한 이미지(ui구축 안됨)

                       TestProj의 Resource 게임에 필요한 media.

                       코드상 리소스 관리를 위해 통째로 상위로 올릴지,

                       아니면 환경설정 파일을 이용해서 두개의 path 모두 고려한 리소스 관리를 해야할지 결정이 필요.


                     * 위 두 프로젝트는 하나의 솔루션으로 묶여있음.

                       따라서 프로젝트 빌드 순서는 Engine, Test 순이어야 하고,

                       Engine의 postBuild Process로 헤더와 빌드된 라이브러리를 inc와 lib에 각각 복사하는 작업이 이루어져야함.


                     * 그리고, 크고 작은 작업이 완료되어 간단한 테스트 후엔 tagging을 하던, 다른 저장소에 commit을 하던지 해서,

                        내려받아서 빌드만 하면 바이너리 생성할 수 있게 해야함.

신고

'soo'study > 생각' 카테고리의 다른 글

CS : GO 총기들의 리코일 패턴 등.  (0) 2013.12.09
FPS 맵을 만들자 - 3  (0) 2013.11.21
정규표현  (0) 2013.11.21
프로젝트 환경 재설정.  (0) 2013.11.11
FPS 맵을 만들자 - 2  (0) 2013.10.11
FPS 맵을 만들자.  (0) 2013.10.11
Posted by 흰둥에미

.map 파일의 파싱은 됐고, 이제 데이터를 구축.


개념 정리.

1. CSG(Constructive Solid Geometry)

  위키 - http://en.wikipedia.org/wiki/Constructive_solid_geometry

  그림만 보면 딱 이해가 되니 링크를 걸었다.


2. BSP(Binary Partitioning Tree)??

  말그대로 이진분할트리로써, 많은 FPS에서 맵으로 쓰였음.

  - 131014 무슨 생각으로 BSP를 트리라고? BSP는 맵포맷이고 이진분할트리를 사용해 관리할 수 있다.


3. 3 평면 교차법

  3개 평면을 이용하여 교차되는 점을 이용하여, 실제 폴리곤으로 구축해내기 위한 방법.


4. MAP 파일의 브러시란

  평면으로 이루어진 볼록 다면체를 나타내기 위한 데이터들의 집합


로직.

1. 각 entity들에 있는 brush들을 이용해 폴리곤 구축. - 3 평면 교차법을 사용.

 - 각 brush묶음들에 대해만 수행하면 되는지, 한 entity안에 있는 모든 brush들에 대해 수행해야 하는지 아직 모름 (?)

 - 131013 - 브러시 단위로 수행하면 됨.

   세개의 평면이 교차해서 삼각뿔을 만들어 낼 경우, 해당점들을 폴리곤의 버텍스로 이용.

   실제로 구축되어야 할 모양은 삼각뿔이 아닌 다각체(?)일 수 있다.

   다른 모든 평면들에 대해 각 점들이 밖에 있는 해당 점은 폴리곤의 버텍스로 이용되지 않음.


2. 각 entity들에 있는 brush를 이용해 텍스쳐 좌표 구축.

신고

'soo'study > 생각' 카테고리의 다른 글

CS : GO 총기들의 리코일 패턴 등.  (0) 2013.12.09
FPS 맵을 만들자 - 3  (0) 2013.11.21
정규표현  (0) 2013.11.21
프로젝트 환경 재설정.  (0) 2013.11.11
FPS 맵을 만들자 - 2  (0) 2013.10.11
FPS 맵을 만들자.  (0) 2013.10.11
Posted by 흰둥에미

최근에 달린 댓글

최근에 받은 트랙백

글 보관함

티스토리 툴바