728x90

CS 92

Double buffering

Double Buffering - 더블 버퍼링 기법 :: Move Fast (tistory.com) Double Buffering - 더블 버퍼링 기법 더블 버퍼링(Double Buffering)은 이중 버퍼링이라 불리기도 하며, 그래픽 객체에 이미지를 그릴 때 사용되는 기법이다. Q) 왜 사용하는가 ? A) API를 시작하다보면 비트맵 이미지를 사용하게 된다. 그 movefast.tistory.com A) API를 시작하다보면 비트맵 이미지를 사용하게 된다. 그 때 이미지들이 전환되면서 영상처럼 부드럽게 움직일 거라 생각하지만 실제로 이미지들이 움직일 때마다 화면이 깜빡이는 현상이 눈에 들어온다. 쉽게 말하자면 아래와 같은 상황인 것이다. 그 이유는 컴퓨터가 이미지를 지웠다가 새 이미지를 다시 그리고 ..

diffuse / ambient / specular

[게임공부] Diffuse reflection, Ambient light, Specular Reflection : 네이버 블로그 (naver.com) [게임공부] Diffuse reflection, Ambient light, Specular Reflection 모델링한 물체의 빛을 근사적으로 묘사하기 위해, diffuse reflection, ambient light, specular refl... blog.naver.com 모델링한 물체의 빛을 근사적으로 묘사하기 위해 주로 세 종류의 빛을 이용함. * Diffuse Reflection (난반사) 물체의 표면 재질이 거칠다면, 입사된 빛은 여러 방향으로 불규칙하게 반사될 것임. 이를 렌더링 시스템에서 모두 계산하는 것은 불가능하며, 단순한 근사 모델을 ..

unity 그림자 구현

Unity) 그림자(Shadow) :: 뻔뻔한블로그 (tistory.com) Unity) 그림자(Shadow) 1. 그림자 빛이 지나가는 경로에 불투명한 물체가 존재하여 빛이 통과하지 못해 생기는 어두운 부분이다. 게임에서 그림자는 모든 물체를 입체감을 더해주는 요소이다. 그림자가 있으면 사물의 funfunhanblog.tistory.com 쉐도우 맵의 원리 뎁스 텍스쳐 생성 (카메라를 통해서 현재 씬이 렌더링되는 정보를 렌더링하는 과정) 렌더링될 픽셀의 컬러 대신 카메라로부터 픽셀의 위치까지의 거리를 렌더링함 (카메라 가까이 있는 픽셀일수록 검은색 , 멀수록 흰색) 그 후, 그림자 처리를 위한 별도의 버퍼 필요. 이 버퍼에는 광원에서 바라보는 오브젝트의 픽셀의 깊이를 저장함. -> 이것이 쉐도우맵 그림..

DiretX / OpenGL

[OpenGL과 DirectX비교] : 네이버 블로그 (naver.com) [OpenGL과 DirectX비교] [기초개념] OpenGL (Open Graphics Library)OpenGL[오픈 지엘]은 2차원 및 3차원 그래픽 이미지를... blog.naver.com 공통점 둘 다 그래픽스 표준 API 규격 / 즉 멀티미디어, 게이밍을 위한 API 집합. 차이점 * OpenGL(호환성모드) : 세계적 표준으로 인텔 NVIDIA 등이 사용하는 API 규격 인텔 , 엔비디아, 애플 등 많은 멤버들이 자사의 하드웨어 혹은 제품을 호환할때만 새로운 OpenGL버전 출시를 공동으로 동의하기 때문에 여러 플랫폼의 호환성이좋지만 업그레이드가 아주 느림. *DirectX(스피드모드) : 마이크로소프트가 윈도우 전용으..

name mangling

extern C , 맹글링(function name mangling) : 네이버 블로그 (naver.com) extern C , 맹글링(function name mangling) [C++]extern C카테고리 : C++ 2007/03/20 00:01 C++ 프로그램내에서 C함수 ... blog.naver.com c++는 오버라이딩을 허용하기 때문에 함수 이름이 겹칠 수 있어 컴파일러가 임의로 함수나 변수의 이름을 변경하는 것 컴파일러마다 다른 맹글링규칙을 가지고 있음 필요성 ) C++는 C를 포함함. 그런데 만약 C 컴파일러로 컴파일된 오브젝트 파일이나 라이브러리만 C++에서 써야한다면 C함수를 사용하고자 한다면 그 함수의 원형을 C++ 코드에 선언시켜주고 C오브젝트 파일이나 라이브러리와 링크시켜서 C..

CS/C++ 2023.12.14

이동 의미론 ( move semantics)

C++11 부터 지원되는 이동연산자. * lvalue : 접근할 수 있는 주소를 가진 변수 - 이동연산을 할 수 없음 (이름이 있는 변수, 함수 int a, &foo() 선행 증감 연산자 ++a, --b lvaule배열의 인덱스 접근 l[n] string리터럴 "hello move sementics" 등등...) *prvalue: 접근을 할순 있지만 주소를 가지지 못한 표현식 -이동연산 가능 (리터럴 값 1,1.3f 후행 증감연산자 a++, b-- 값 리턴함수 호출 return str1 + str2; 비 참조 캐스팅 static_cast(x), (int)42 등등) *xvalue : 접근할 수 있는 주소를 가지지만 이동연산을 할 수 있음 rvalue참조를 리턴하는 함수 std::move(x) rvalue..

CS/C++ 2023.12.14

L value 와 R value

[C++] l-value, r-value : 네이버 블로그 (naver.com) [C++] l-value, r-value C언어에는 lvalue(left value), rvalue(right value) 라는 개념이 존재한다. 이 왼쪽 값, 오른쪽 값이란 ... blog.naver.com lvalue 표현식 이후에도 사라지지 않는 값. 이름을 지니는 변수. rvalue 표현식 이후에는 사라지는 값. 임시 변수. x+y 따위는 실제 변수가 아니라 임시 변수를 생성하여 (레지스터인지 메모리인지)에 저장, 사용한다. 이 값은 일반 변수와 마찬가지로 int 등의 타입을 가지고 있지만 계산이 끝나면 사라지는데 이것이 rvalue 이다. 그리고 명시적으로 선언하여 '이름'을 가지고, 계속 접근할 수 있는 변수가 바..

CS/C++ 2023.12.14

c++ typedef vs using 키워드 차이점

[c++] typedef 와 using의 차이점 (velog.io) [c++] typedef 와 using의 차이점 c++11 부터 사용할 수 있는 using키워드는 typedef 와 동일하게 type의 별칭을 만드는 키워드이다. 얼핏 사용하다 보면 같은 기능을 가진 것으로 보이지만 하나의 큰 차이점이 있다. 바로 template의 별칭 velog.io 공통점: 둘 다 type의 별칭을 만드는 키워드임 차이점: template의 별칭을 지정할 수 있느냐 없느냐의 차이임

CS/C++ 2023.12.14

C++ template 장단점

[C++] template(템플릿) 에 관하여 1 (템플릿이란, 함수 템플릿) (tistory.com) [C++] template(템플릿) 에 관하여 1 (템플릿이란, 함수 템플릿) 안녕하세요 BlockDMask 입니다.오늘은 C++에서 자료형을 마음대로 가지고 놀 수 있는, template (템플릿) 에 대해 알아보겠습니다. 1) 템플릿(Template) 이란.함수나 클래스를 개별적으로 다시 작성하지 않 blockdmask.tistory.com 템플릿: 함수나 클래스를 개별적으로 다시 작성하지 않아도 여러 자료형으로 사용할 수 있도록 하게 만들어 놓은 int sum(int a, int b){ return a + b; } double sum(double a, double b){ return a + b; ..

CS/C++ 2023.12.14
728x90