전체 글(30)
-
[그래픽스] 스프라이트를 뷰포트 세팅으로 배치해도 되나요?
서문 정점 셰이더를 통해 객체를 직접 배치하는 경우 보통 논리적 공간 내 배치를 위한 행렬(주로 World 또는 Model Matrix라고 불림), 공간 중 보이고자 하는 위치를 정하기 위한 카메라 행렬(주로 Camera 또는 View Matrix라고 불림), 해당 방향을 기준으로 보이고자 하는 영역을 정하기 위한 투영 행렬(주로 Projection Matrix라고 불림)을 통해 셰이더 내에서 모델을 변환시키는 것으로 수행합니다. 셰이딩을 안 한다면 뷰 행렬과 투영 행렬을 분리해서 GPU에 넘길 필요가 줄어들고, 보이고자 하는 공간이 2D라면 투영 행렬의 역할은 종횡비 맞춤 및 확대 정도가 되고 카메라의 역할은 평행이동이 전부. 이때 객체의 회전이 없으면 뷰포트 세팅만으로 객체 배치를 할 수 있는 셈인데..
2023.10.21 -
GPT가 나보다 낫네요?
가만 생각하면 당연한 소리긴 한데,,, 간혹 틀린 말 하는 것만 아니었으면 월 10만 원도 안 아깝겠는데요. (대학교가 월 100만 원 넘었던 것만 생각해도) Q1. dFdx가 이런 건가? Is my understanding right for GLSL dfdx/dfdy? "2x2 areas are guaranteed to be executed simultaneously for shader, and dfdx and dfdy peeks the adjacent pixel. If A B | C D is one of the blocks, both dfdx in A invocation yields B - A" A1. 응 Your understanding is mostly correct. GLSL has a buil..
2023.03.05 -
Vulkan - 13. 압축 텍스처
개요PNG와 같은 이미지 압축 형식은 내용을 (최대한) 유지하고 작은 크기로 보관하기 위한 알고리즘이 적용되었다면, 텍스처의 압축은 임의 접근에 유리하면서도 크기를 작게 하는 데에 초점을 맞춥니다. 오늘날의 선명한 이미지들은 한 픽셀에 24(RGB) 또는 32(RGBA)비트를 사용하는 만큼 메모리를 많이 차지하며 이는 공간 지역성과 직결되는 성능 문제이기도 한데요, 따라서 오늘날 게임 엔진들은 텍스처 매핑을 위해 압축 기술을 많이 사용합니다. 이들은 밉맵이나 비등방성 필터링과도 함께 사용할 수 있다고 합니다. 이번 글에서는 Vulkan에서 텍스처로 사용할 이미지 객체(VkImage)를 위해 압축 텍스처 형식을 사용하는 방법을 확인해 봅니다. 목차1. Vulkan에서 압축 텍스처 형식 데이터를 넘겨 사용하..
2022.11.08 -
안드로이드 스튜디오 NDK와 Vulkan - 2
개요 이 글은 1편에서 그대로 이어집니다. 1편은 "이렇게 하니까 안드로이드 일부 기기에서 Vulkan이 돌아가더라" 하는 내용이었습니다. 이제 게임과 같은 응용을 만들기 위해서는 어떤 구조를 만들지를 생각해 보는 게 이 2편입니다(코드째로 달라질 메인 이슈는 음원재생과 입력). 즉, 엄밀히 말하면 여긴 Vulkan과는 직접적으로 관련 없는 내용이 더 많습니다. 2.3절 정도가 관련이 있겠네요. 1편을 쓸 당시에도 (코드 외에) 뭔가 딱 모여 있는 자료를 찾기가 어려웠는데 그건 약 2달 지난 지금도 마찬가지인 것 같습니다. 때문에 여기 나오는 모든 얘기는 별도로 명시하지 않은 경우 제 머리 속에서 나온 것이며 막 신뢰해도 될 말은 아님을 미리 일러 둡니다. 목차 1. 동기 통신 2. AGDK 2.1. G..
2022.10.23 -
Rust 잠깐 배워 보았어요
개요 한 기사에 따르면 Azure CTO가 더 이상 쓰지 말자는 강한 표현까지 써 가면서 C, C++ 메모리 관리의 어려움과 Rust를 쓰는 것의 당위성을 강조했는데요, 물론 CTO를 넘어 빌 게이츠의 할아버지가 말한대도 바로 C, C++ 유행이 확 내려가진 않겠습니다만, 다른 건 몰라도 저는 살짝 쫄리네요. MS 애저 CTO "C·C++ 이제는 그만" 마이크로소프트(MS) 애저의 마크 러시노비치 CTO는 업계에서 C 및 C++ 언어를 더 이상 사용되지 않는 언어로 취급해야 한다고 강조했다.최근 미국 지디넷에 따르면, ... zdnet.co.kr 그래서 이번에는 Rust를 배우는 글을 작성합니다. 글은 독자가 C++ 및 컴퓨터과학(프로그래밍 언어론/컴파일러)에 대한 높은 수준의 이해를 갖고 있다고 가정하..
2022.09.26 -
Vulkan 물리 장치 속성
개요 물리 장치 속성과 역량 중에서 장치 생성은 시작 시 그래픽카드(내장 그래픽) 선택에 참고할 뿐 아니라, 선택 시 저장해 둘 만한 값이 응용에 따라 달리 있을 겁니다. 이번 글은 그것을 판단하는 데 도움이 되기 위해 간결히 모아 두는 것입니다. 주의) 확장 기능(e.g. 끝에 2나 EXT, KHR 같은 게 붙은 것들)은 내용이 어려워져서 여기선 다루지 않습니다. 물론 확장이 아닌 것도 쉽지 않은 내용이 있어 정보가 부족할 수 있습니다. 목차 1. 우리의 선택권 2. vkGetPhysicalDeviceFeatures 3. vkGetPhysicalDeviceMemoryProperties 4. vkGetPhysicalDeviceProperties 4.1. 역량(limits) 5. 나머지 본문 1. 우리의 ..
2022.09.25