본문 바로가기

Game/Graphics

(68)
Learn OpenGL - Model Loading : Assimp link : https://learnopengl.com/Model-Loading/Assimp Assimp 지금까지 모든 장면에서 우리는 다양한 방법으로 우리의 작은 컨테이너 친구를 광범위하게 학대했지만 시간이 지남에 따라 가장 친한 친구조차도 조금 지루할 수 있다. 실용적인 그래픽 응용 프로그램에는 일반적으로 정적 컨테이너보다 훨씬 더 보기 좋고, 복잡하고, 흥미로운 모델이 많이 있다. 그러나 컨테이너 객체와 달리 주택, 차량 또는 사람과 유사한 복잡한 모양의 모든 정점, 법선 및 텍스처 좌표를 실제로 수동으로 정의할 수는 없다. 우리가 원하는 것은 이 모델들을 어플리케이션으로 임포트하는 것이다.(Blender, 3DS Max 또는 Maya와 같은 도구에서 3D아티스트가 신중하게 설계한 모델) 이러한 소..
LearnOpenGL - Glossary link : https://learnopengl.com/Lighting/Review 이번 글은 Review에 있는 어휘들을 정리하겠다. Glossary - Color vector : 빨강, 녹색, 파랑 구성 요소 (RGB로 약칭)의 조합을 통해 대부분의 실제 색을 묘사하는 벡터이다. 객체의 색상은 실제로 객체가 흡수하지 않은 반사된 색상 요소이다. - Phong lighting model : ambient, diffuse, specular 구성 요소를 계산해 실제 조명을 근사하는 모델이다. (주위의 , 확산의 , 반사의) - Ambient lighting : 조명을 켜지 않았을 때 오브젝트가 완전히 어두워지지 않도록 오브젝트에 작은 밝기를 부여해 글로벌 조명을 근사한다. - Diffuse lighting..
Learn OpenGL - Lighting : Multiple lights link : https://learnopengl.com/Lighting/Multiple-lights Multiple lights 이전 튜토리얼에서 우리는 OpenGL에서 조명에 대해 많은 것을 배웠습니다. 우리는 Phong 음영, 재료, 조명 맵 및 다양한 유형의 조명 캐스터에 대해 배웠다. 이 튜토리얼에서는 6개의 활성 광원으로 완전히 조명된 장면을 만들어 이전에 습득한 모든 지식을 결합합니다. 우리는 방향 광원으로 태양과 같은 빛을 시뮬레이션 하려고 한다. 장면 전체에 흩어져있는 4점의 조명과 손전등을 추가할 것이다. 장면에서 광원을 두 개 이상 사용하려면 조명 계산을 GLSL 함수로 캡슐화해야한다. 그 이유는 각각의 조명 유형이 서로 다른 계산을 필요로 하는 다중 조명을 사용해 조명 계산을 수행하고..
Learn OpenGL - Lighting : Light casters link : https://learnopengl.com/Lighting/Light-casters Light casters 지금까지 사용했던 모든 조명은 공간의 단일 지점인 단일 광원에서 발생했다. 그것은 좋은 결과를 주지만 현실 세계에서 우리는 각각 다른 행동을 하는 몇 가지 유형의 빛을 가지고 있다. 물체에 빛을 비추는 광원을 light caster라고 한다. 이 튜토리얼에서는 여러 가지 유형의 light caster에 대해 설명한다. 다양한 광원을 시뮬레이트하는 방법은 도구 상자에서 환경을 더욱 풍부하게하는 또 하나의 도구이다. 우리는 우선 방향성 빛에 대해 이야기 할 것이고, 그 다음에는 우리가 이전에 가지고 있었던 것의 연장선인 점등과 마지막으로 우리는 spotlight에 대해 토론할 것이다. 다..
Learn OpenGL - Lighting : Lighting maps link : https://learnopengl.com/Lighting/Lighting-maps Lighting maps 이전 튜토리얼에서 우리는 빛과 다르게 반응하는 고유한 재료를 갖는 각 물체의 가능성에 대해 논의했습니다. 이는 조명이 있는 장면의 다른 오브젝트와 비교해 각 오브젝트에 고유한 모양을 부여하는데 유용하지만 오브젝트의 시각적 출력에 너무 많은 유연성을 제고하지는 못한다. 이전 튜토리얼에서 우리는 전체 객체에 대한 material을 정의했지만, 실제 세계의 객체는 일반적으로 단일 material로 구성되지 않았지만 여러 material로 구성되었다. 자동차를 생각해보아라. 외관은 반짝이는 천으로 구성되어 있으며, 부분적으로 주변 환경을 반영하는 창문이 있다. 타이어는 반짝 반짝 빛나고 반사..
Learn OpenGL - Lighting : Materials link : https://learnopengl.com/Lighting/Materials Materials 실제 세계에서는 각 객체가 빛과 다르게 반응한다. 예를 들어 강철 물체는 꽃병보다 더 빛나는 경우가 많으며 나무 컨테이너는 강철 컨테이너처럼 빛에 반응하지 않는다. 각 오브젝트는 반사 하이라이트와 다르게 반응한다. 일부 오브젝트는 너무 많은 산란없이 빛을 반사해 작은 하이라이트가 생기고, 다른 오브젝트가 많이 산재해 하이라이트의 반경이 커진다. OpenGL에서 여러 유형의 객체를 시뮬레이트하려면 각 객체에 특정한 재료 특성을 정의해야한다. 이전 튜토리얼에서는 ambient 및 반사 강도 구성 요소와 결합된 객체의 시각적 출력을 정의하기 위해 객체와 밝은 색상을 지정했다. 객체를 설명할 때 우리는 3..
Learn OpenGL - Lighting : Basic Lighting link : https://learnopengl.com/Lighting/Basic-Lighting Basic Lighting 현실 세계의 조명은 매우 복잡하며 너무 많은 요소에 따라 달라지므로 제한된 처리 능력으로 계산할 수 없다. 따라서 OpenGL의 조명은 처리가 훨씬 간편하고 비교적 비슷하게 보이는 단순화된 모델을 사용해 현실의 근사치를 기반으로 한다. 이 조명 모델은 우리가 이해할 수 있는 빛의 물리학을 기반으로 한다. 이러한 모델 중 하나는 Phong 조명 모델이라고 한다. Phong 모델의 주요 구성 요소는 주변, 확산 및 반사 조명의 3가지 구성 요소로 구성된다. 아래에서 이러한 조명 구성 요소의 실제 모습을 볼 수 있습니다. - Ambient lighting : 어둠이 있어도 어딘가에는 세..
Learn OpenGL - Lighting : Colors link : https://learnopengl.com/Lighting/Colors Colors 우리는 이전 튜토리얼에서 OpenGL의 색상 작업 방법에 대해 간략하게 언급했지만 지금까지는 색상의 표면만 다루었다. 여기서 우리는 색상이 무엇인지를 광범위하게 논의하고, 다가올 Lighting 튜토리얼을 위한 장면을 구축할 것이다. 실세계에서 색상은 각 객체가 고유한 색상을 갖는 임의의 알려진 색상 값을 실제로 취할 수 있다. 디지털 세계에서 (무한한) 실제 색상을 (제한된) 디지털 값으로 매핑해야하므로 모든 실제 색상을 표현할 수 있다. 색상은 일반적으로 RGB로 축약된 빨강, 녹색, 파랑 구성 요소를 사용해 디지털 방식으로 표현된다. 그 3가지 값의 다른 조합을 사용해 거의 모든 색상을 표현할 수 있다...