일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- 코드블럭 테마
- ML-Agents
- unity
- 유니티 오브젝트 풀링
- 유니티 머신러닝
- 유니티
- 유니티 Rotate
- LFS
- 너비 우선 탐색
- Raycast
- 유니티 리소스매니저
- LookRotation
- c++ 문자열 자르기
- 소스코드 줄번호
- 유니티 시야 가림
- 유니티 InputManager
- c++
- git-lfs
- 오브젝트 풀링
- 이진트리
- 유니티 ResourceManager
- eulerAngles
- 유니티 Collision
- 알고스팟
- InputManager
- 유니티 Vector3
- 깊이 우선 탐색
- Mathf.Clamp
- LayerMask
- Quaternion.Euler
- Today
- Total
목록분류 전체보기 (108)
무민은귀여워
반사각을 구하기 위함 (아래 그림에서) v로 들어왔을 때 R을 구한다. dot : 내적 V : 입사 방향의 (x,y,z) 성분을 가진 벡터 R : 새로운 반사 방향의 (x,y,z) 성분을 가진 벡터 N : 해당 면의 Normal Vector (Normalized 된 것) R = -R1 = V - 2 * N * (V dot N) 참고 사이트 http://rapapa.net/?p=673 http://rapapa.net/?p=673 rapapa.net [ 알카노이드 제작 준비 작업 메모 ]
c4996 에러 -> 권장되지 않는 함수에 대한 에러이다. include 후 1 #pragma warning(disable:4996) cs 위 코드를 삽입해서 해결.
구조체가 char형 변수 하나만 가지고 있다고 하더라도, 바이트 패딩으로 구조체의 크기는 4바이트가 된다. 참고 사이트 https://supercoding.tistory.com/37 바이트 패딩(Byte Padding) 바이트 패딩(Byte Padding) 바이트 패딩(Byte Padding)이란 클래스(구조체)에 바이트를 추가해 CPU 접근에 부하를 덜어주는 기법입니다. 먼저 패딩(Padding) 이라는 말에는 이런뜻이 있습니다. padding 1. (푹신하.. supercoding.tistory.com
lvalue 표현식이 종료된 이후에도 없어지지 않고 지속되는 개체 (예: 모든 변수) rvalue 표현식이 종료되면 더 이상 존재하지 않은 임시적인 개체 (예: 상수, 임시 객체) Q. Lvalue인지 Rvalue인지 헷갈린다면? 주소 연산자 &를 붙여서 에러가 나면 Rvalue 1 2 &(++x); &(x++); // error C2102: '&' requires l-value cs * Lvalue Reference : Lvalue만 참조 가능 / Rvalue Reference : Rvalue만 참조 가능 1 2 3 4 5 6 7 8 9 10 11 12 13 int rvalue() { return 10; } int main() { int lvalue = 10; int& a = lvalue; int& b..
널 포인터는 아무것도 가리키지 않는 포인터이다. 내부 표현은 다르지만 c++는 이 포인터를 소스 코드에서 0을 표현하는데 사용해왔다. 하지만 종종 포인터 상수와 정수 모두 0으로 표현하기 때문에 문제가 발생한다. 따라서 nullptr이라는 키워드를 제공하여 널 포인터를 표현한다. ex) int형 매개변수를 받는 함수에서 0은 통과되지만, 이런 함수에 nullptr이 들어오는 경우 컴파일러는 에러로 판단한다. 따라서 컴파일러가 분명하고 안전하게 받아들일 수 있도록 nullptr을 사용한다. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 #include #include template void Fwd(F f, A a) { f(a); } void g(in..
1. Gamma에 대해 조사해오세요. 우선 Gamma Correction 의 개념이 도입되는 첫번째 이유는 "모든 모니터들은 실제 모니터로 보내지는 영상 정보보다 어둡게 보여준다"는 데에서 출발합니다. 때문에 모니터로 보내는 영상의 값을 좀 더 높게 보내면 원래 보여주고자 하는 영상을 보여줄수 있습니다. 예를 들어, 0.8, 0.8, 0.8 을 모니터에 보여주려고 하면 눈으로 느껴지는 것은 0.5, 0.5, 0.5 가 된다는 것입니다. 계산 공식이 여러가지로 많이 있는데 일반적으로 다음과 같은 공식을 사용합니다. (보여주고자 하는 값) ^ (1.0/2.2) 여기에서 2.2 라는 값을 흔히 Gamma 값 이라고 합니다. Gamma 값은 2.2 이 가장 근접한 값으로 알려져있는데, 그냥 2.0 을 사용하는 ..
응용 프로그램이 실행될 때 필요한 초기화 정보를 담고있는 파일 (Initialization file) [ 예제 ] 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 #include #include using namespace std; int main() { WritePrivateProfileString("KeyBind", "Skill1", "A", "C:\\파일경로\\test.ini"); WritePrivateProfileString("KeyBind", "Skill2", "3", "C:\\파일경로\\test.ini"); char a[255]; GetPrivateProfileString("KeyBind", "Skill1",..
1. 본인이 하는게임폴더에서 *.ini명령으로 ini파일을 찾아보세요 응용 프로그램이 실행될 때 필요한 초기화 정보를 담고있는 파일 (Initialization file)이다. 1234567891011121314151617181920212223242526272829303132333435[Cinematics.1]ShowIntro = "0" [environment.1]Current = "1229101511" [GPU.6]GPUDeviceID = "5058"GPUName = "NVIDIA GeForce GTX 970"GPUScaler = "6.000000"GPUVenderID = "4318" [Render.13]FrameRateCap = "82"FullScreenRefresh = "60"FullscreenWi..
1. DrawCall에 대해 조사해오세요. 스크린에 오브젝트를 렌더링하기 위해 렌더링 엔진은 OpenGL이나 Direct3D 그래픽 API에(GPU : 그래픽 처리 장치) 그리기 요청(draw call)을 하는데 이 요청을 드로우 콜이라고 한다. 모든 그리기 요청(draw call)은 CPU 상의 상당한 퍼포먼스 오버헤드를 일으킨다. # 오버헤드 : 오버헤드는 특정한 기능을 수행하기 위해 추가로 사용되는 컴퓨터 자원을 지칭하는 것이다 예를 들어, 감사 증적을 유지하기 위해 10%의 오버헤드가 필요하다는 말은, 감사 증적 기능이 동작하고 있는 동안에는 그 프로그램의 실행속도가 10% 가량 늦어진다는 것을 의미한다. 이 작업은 자원이 많이 들기 때문에 드로우 콜을 줄이는 것이 성능 향상에 있어 매우 중요하다..
1. 디퍼드와 포워드 랜더링을 조사해오세요. 포워드 렌더링 이전부터 사용되던 방식 3D공간에 존재하는폴리곤을 픽셀화하여, 그 픽셀마다 쉐이딩과 라이팅 연산을 더하는 방식으로 묘사 장점 비교적 저사양에서도 작동. 동적 광원 모델을 애니메이션 종류나 하드웨어에 구애되지 않고 자유롭게 사용 앤티얼라이싱을 지원하는 하드웨어에서 어떤 구성요소든 렌더링할 수 있다는 장점 단점 연산이 느리다. 광원이 여러개일 때 각 광원마다 렌더링 프로세스 횟수가 늘어나 성능이 떨어짐 그림자 처리가 어렵고 화면 깊이값을 이용한 포스트 이펙트는 따로 처리해야 함 디퍼드 렌더링 많이 사용하는 덩어리를 미리 선처리해서 메모리에 보관해 뒀다가 재사용하는 방식 장점 수많은 동적 라이팅을 실시간으로 보여줄 수 있다. 수많은 오브젝트와 복잡한 ..