본문 바로가기

OpenGL-Tutorial 11 : 2D Text link : http://www.opengl-tutorial.org/kr/intermediate-tutorials/tutorial-11-2d-text/ 11번째 튜토리얼이다. 이번에는 3D 콘텐츠 위에 2D 텍스트를 그리는 방법을 배운다고 한다. The API 우리는 간단한 인터페이스 (common / text2D.h)를 구현할 것이다.void initText2D(const char * texturePath); void printText2D(const char * text, int x, int y, int size); void cleanupText2D();코드가 640*480과 1080p에서 모두 작동하려면 x와 y는 좌표가 [0-800] [0-600]이 된다. vertex shader는 이를 화면의 실..
OpenGL-Tutorial 10 : Transparency link : http://www.opengl-tutorial.org/kr/intermediate-tutorials/tutorial-10-transparency/ 10번째 튜토리얼이다. 이번에는 투명도 바꾸는 것을 배우는 것 같다. The alpha channel 알파 채널의 개념은 매우 간단하다. RGB 결과를 작성하는 대신에// Ouput data : it's now a vec4 out vec4 color; 처음 3개의 구성 요소는 .xyz swizzle 연산자로 액세스 되지만 마지막의 구성요소는 alpha 값이다.color.a = 0.3;비직관적으로 alphap = 투명도이다. 그리고 alpha = 1은 불투명을 의미하고 alpha = 0은 완전 투명을 의미한다. 여기서 알파 채널을 0.3으로 하드 ..
OpenGL-Tutorial 9 : VBO Indexing link : http://www.opengl-tutorial.org/kr/intermediate-tutorials/tutorial-9-vbo-indexing/ 9번째 튜토리얼이다. 이제 Basic tutorial이 끝나고 Intermediate tutorial이 시작했다! 화이팅! The principle of indexing (Index 생성 원칙) 지금까지 VBO를 만들 때 우리는 항상 2개의 삼각형 가장자리를 공유할 때마다 정점을 복사했다. 이 튜토리얼에서는 동일한 꼭지점을 반복해서 사용하는 인덱싱을 소개한다. 인덱스 버퍼를 사용해 이 작업을 수행한다. 인덱스 버퍼는 다양한 속성 버퍼(위치, 색상, UV 좌표, 다른 UV 좌표, 법선, ..)를 참조하는 메쉬의 각 삼각형에 대해 3개의 정수가 포함된..
OpenGL-Tutorial 8 : Basic shading link : http://www.opengl-tutorial.org/kr/beginners-tutorials/tutorial-8-basic-shading/ 8번째 튜토리얼이다. 이번 튜토리얼에서는 기본적인 쉐이딩을 수행하는 방법을 학습한다고 한다. 1) 광원에 가까울 때 더 밝은 빛2) 빛의 반사를 바라볼 때 하이라트가 있다(반사 조명)3) 빛이 모델쪽으로 직접 향하지 않을 때 어두워 진다(확산 조명) Triangle normalse (삼각형 법선) 평면의 법선은 이 평면에 수직인 길이 1의 벡터이다.삼각형의 법선은 이 삼각형에 수직인 길이 1의 벡터이다. 그것은 두 개의 모서리의 외적을 취함으로써 쉽게 계산된다.triangle ( v1, v2, v3 ) edge1 = v2-v1 edge2 = v3-v1..
OpenGL-Tutorial 7 : Model loading link : http://www.opengl-tutorial.org/kr/beginners-tutorials/tutorial-7-model-loading/ 7번째 튜토리얼이다. 이번 튜토리얼에서는 파일에서 3D 메쉬를 로드하는 방법을 학습한다고 한다. 가능한 간단하게 이 튜토리얼을 유지하기 위해 OBJ 파일 형식을 사용할 것이라고 한다. Loading the OBJ bool loadOBJ( const char * path, std::vector & out_vertices, std::vector & out_uvs, std::vector & out_normals ) Example OBJ file OBJ 파일은 다음과 같다.# Blender3D v249 OBJ File: untitled.blend # www...
OpenGL-Tutorial 6 : Keyboard and Mouse link : http://www.opengl-tutorial.org/kr/beginners-tutorials/tutorial-6-keyboard-and-mouse/ 벌써 6번째 튜토리얼! 이번에는 마우스와 키보드를 사용해서 카메라를 움직이는 방법을 배운다고 한다. The Interface 이 코드는 튜토리얼 전체에서 다시 사용되므로 common/controls.cpp 라는 별도의 파일에 코드를 추가하고,controls.hpp를 선언해 사용하라고 한다. (사실 이전에 쓰던 shader와 texture도 따로 선언해야하는데 안 했었다) 나는 튜토리얼만 할 것임으로 한 코드에 넣을 것이다. (이렇게 해야지 초보자 분들도 따라하기 쉬울거 같아서) do{ // ... // Compute the MVP matrix..
OpenGL-Tutorial 5 : A Textured Cube link : http://www.opengl-tutorial.org/kr/beginners-tutorials/tutorial-5-a-textured-cube/ 이번 튜토리얼부터는 영어다! 앞으로는 해석과 함께 중요한 개념들을 정리해서 올리도록 하겠다. [배울 것]1) UV좌표 2) 직접 텍스처를 입히는 방법3) OpenGL에서 사용하는 방법4) 필터링과 맵핑이 무엇이고, 어떻게 사용하는지5) GLFW로 견고하게 텍스처를 입히는 방법 1) UV Coordinate - mesh를 Texturing할 때 각 삼각형에 대해 이미지의 어느 부분을 사용해야하는지 OpenGL에 알리는 방법이 필요하다. 이 것은 UV 좌표로 수행된다. 각 정점은, 그 위치의 최상부에 2개의 부동 소수점 U와 V를 가질 수 있다. 이러..
[백준 9935번] 문자열 폭팔 link : https://www.acmicpc.net/problem/9935문자열 폭발 성공한국어 시간 제한메모리 제한제출정답맞은 사람정답 비율2 초 (언어별 추가 시간 없음)128 MB105591699114918.858%문제상근이는 문자열에 폭발 문자열을 심어 놓았다. 폭발 문자열이 폭발하면 그 문자는 문자열에서 사라지며, 남은 문자열은 합쳐지게 된다.폭발은 다음과 같은 과정으로 진행된다.문자열이 폭발 문자열을 포함하고 있는 경우에, 모든 폭발 문자열이 폭발하게 된다. 남은 문자열을 순서대로 이어 붙여 새로운 문자열을 만든다.새로 생긴 문자열에 폭발 문자열이 포함되어 있을 수도 있다.폭발은 폭발 문자열이 문자열에 없을 때까지 계속된다.상근이는 모든 폭발이 끝난 후에 어떤 문자열이 남는지 구해보려고 한..