midas+son의 크리에이티브(creative) 이야기

수학이나 물리에 대해 깊이 공부를 안했었는데

연휴를 맞아 이 책을 훑어보고 

다시금 공부할때엔 깊게 파고들어야 한다는 것을 깨달았다.


게임 개발을 하고 싶다는 학생이나 초급 프로그래머들은 

필독서가 아닐까 생각이 된다.


아래는 내가 몰랐거나 충격을 받았건 부분들에 대한 정리이다.

이 외에 서점에 가서 보면 알겠지만 처음부터 끝까지 좋은 지식 및 정보들로 가득하다.

(더 깊이 궁금한데 짧게 줄인 부분도 있어서 좀 아쉬운 부분도 몇 있긴하다.)

======================

부동소수점의 원리, 오차 - 오차가 있다는 건 알았는데 왜 그런지는 부동 소수점의 원리에 있었다. 초반부터 크리티컬한 뇌 두드림이었다.

FPU - 부동소수점 처리 장치...처음 들어본 약자

비트연산 응용 - 이 부분보고 if문을 길게 썼던 과거에 이불킥

status |= 석화;         //석화 상태이상 추가

status &= (~석화);    //석화 해제

atan2 - 아크탄젠트2가 있었다는 것과 그 유용성에 대해 처음 알았다.

프래임 드롭대책 - 4가지나 방법이 있는데 하나만 알고 있었다.

벡터 w 성분 - 3차원에서 사용하는 벡터의 4번째 인자의 존재와 1, 0이었을 때의 차이를 이미 알고 있었지만 자세히 설명되어있다.

충돌(선분, 구, 평면, 삼각형) - 한번 보고 이해 못했다. 하지만 중요한 개념이고 다른 곳에서도 꽤 사용될 수학적 지식이라 판단된다.

난수 - 지금까지 알던 rand는 가짜 난수. 진짜 난수란 무엇일까? 난수에 대한 심오함에 새로 공부하게 된다.(끝부분에 급하게 마무리 해서 아쉬운 부분)

======================

노트북에 SSD 추가 예정 - OS부터 재설치
메인 드라이버로 사용하던 HDD는 서브로 변경
현재 HDD에 설치되어있는 것 중 
SSD에 새로 설치 할 목록 작성

=============================

Visual Studio 2015 Community
Unity 5.6
Unreal 4.15.1(& 4.12.5)

Android SDK tools
Java8
IIS 10.0 Express
DirectX SDK (June 2010)
RenderMonkey 1.82(셰이더)
Photoshop CS6
TexturePacker(이미지 패키징툴)
ImageMagick 6.9.3-4 Q8(tga파일 읽어서 Export 가능한 툴)
Blender(3D디자인 툴)
Autodesk 3ds Max 2010(3D디자인 툴)

Notepad++
WinMerge(문서 비교)

Erlang OTP 19(8.1)

Git ver 2.10.1
SourceTree
TortoiseSVN 1.9.2.26806(64bit)
VisualSVN 5.1.2

Adobe Actobat Reader
Adobe AIR
Bonjhour(ipad 관련)
iTunes
Chrome
V3 Lite
곰플레이어
곰오디오
반디집
카카오톡

CoreAAC Audio Decoder
DTS+AC3 필터
MPEG2코덱

Daum 팟 인코더
oCam
자막 한방에

ATK Package(Asus 터치패드)
ELAN Touchpad 11.5.19.2_X64_WHQL(터치패드)

NVIDIA 그래픽 드라이버 381.65
인텔 그래픽드라이버


'개인사 > 개인' 카테고리의 다른 글

SSD 너무 늦게옴  (0) 2017.05.04
새 신을 신고 뛰어보자  (0) 2017.05.03
발렌타인♥  (0) 2017.02.14
키보드 구입  (0) 2017.01.14
벤큐 24인치 모니터 구입  (0) 2017.01.13

Unreal4로 3~4개월 만든 시뮬레이션(Windows PC용)을

Web에서 돌리고 싶다는 Needs가 있어서(왜 있는지 모르겠지만)

시도는 해보았다.


여러가지 문제가 발생 하였는데

정리를 하자면

1. 윈도우용 lib, exe, #include <Windows.h> 등 사용 불가 Error

2. #pragma once 가 cpp에 있으면 Error(h헤더 파일은 당연히 OK)

3. TEXT("한글") Error

4. Runtime으로 메시를 지원해주는 ProceduralMeshComponent 사용불가

5. Plugin으로 쓰고 있던 RamaSaveComponent 사용불가

6. struct 내부에 있는 생성자나 함수 앞에 struct명:: 이 있으면 Error(예로 들면 struct A{ A::A(){} } 이건 Error, struct A{ A(){} } 이건 OK)

7. strtok_s 사용 불가


위의 문제는 어떻게 해서 cpp문제는 다 잡았다.


프로젝트 셋팅에서 타겟 디바이스를 모바일용으로 바꾸고 퀄리티도 낮추었다.


하지만 결국은 LogPlayLevel: BUILD FAILED

PackagingResults:Error: 오류 실행 실패! Unknown Error


눈에 띄는 출력 로그는 아래와 같다.

LogPlayLevel: UnrealBuildTool: INFO:root:Closure compiler (C:\Program Files\Epic Games\UE_4.15\Engine\Extras\ThirdPartyNotUE\emsdk\emscripten\incoming\third_party\closure-compiler\compiler.jar) does not exist, check the paths in C:\Program Files\Epic Games\UE_4.15\Engine\Intermediate\Build\HTML5\.emscripten

LogPlayLevel: UnrealBuildTool: INFO:root:closure compiler will not be available

LogPlayLevel: UnrealBuildTool: error: Linking globals named '_Z14UELinkerFixupsv': symbol multiply defined!

LogPlayLevel: UnrealBuildTool: Traceback (most recent call last):

LogPlayLevel: UnrealBuildTool:   File "C:\Program Files\Epic Games\UE_4.15\Engine\Extras\ThirdPartyNotUE\emsdk\emscripten\incoming\emcc", line 13, in <module>

LogPlayLevel: UnrealBuildTool:     emcc.run()

LogPlayLevel: UnrealBuildTool:   File "C:\Program Files\Epic Games\UE_4.15\Engine\Extras\ThirdPartyNotUE\emsdk\emscripten\incoming\emcc.py", line 1531, in run

LogPlayLevel: UnrealBuildTool:     final = shared.Building.llvm_opt(final, link_opts, DEFAULT_FINAL)

LogPlayLevel: UnrealBuildTool:   File "C:\Program Files\Epic Games\UE_4.15\Engine\Extras\ThirdPartyNotUE\emsdk\emscripten\incoming\tools\shared.py", line 1633, in llvm_opt

LogPlayLevel: UnrealBuildTool:     assert os.path.exists(target), 'Failed to run llvm optimizations: ' + output

LogPlayLevel: UnrealBuildTool: AssertionError: Failed to run llvm optimizations:

LogPlayLevel: UnrealBuildTool: ERROR: UBT ERROR: Failed to produce item: C:\Users\apex\Desktop\gcsvc2_WebGL_\Binaries\HTML5\gcsvc.js

LogPlayLevel: UnrealBuildTool: Total build time: 353.94 seconds (Local executor: 0.00 seconds)


구글링 해보니 환경변수 얘기도 있고 추측글들이 난무하는데

다른 글을 찾아보니 언리얼에서 버그 fix된 것을 발견했다.

https://issues.unrealengine.com/issue/UE-36717

4.16에 고칠 예정이라니...(현재 최신 버전 4.15.1)

찾아보니 더 전에도 같은 버그 report가 있었는데

재현이 안된다고 안 넘어갔었나보다.


==================================

//결론

어짜피 언리얼이나 유니티나 Web용은 아직 최적화가 안되고 신경도 많이 쓰고 있지 않아서

안 될 줄 알고 있었다.

==================================