배움엔 끝이없다(40)
-
Rule of 0/3/5 의 의도를 이해하자
Rule of 3, 5, 0라는 표현을 많이 들어봤지만, 제대로 이해하지 않고 실제로 활용하지도 않고 있었다. cpp reference에도 관련 항목이 있다. The rule of three/five/zero - cppreference.com [edit] Rule of three If a class requires a user-defined destructor, a user-defined copy constructor, or a user-defined copy assignment operator, it almost certainly requires all three. Because C++ copies and copy-assigns objects of user-defined types in va en.cp..
2023.11.20 -
코딩테스트 스터디 - 프로그래머스 파괴되지 않은 건물(C++)
문제 링크 : https://school.programmers.co.kr/learn/courses/30/lessons/92344 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 요약 N * M 크기의 배열이 있다. 이 배열의 일부 직사각형 r1,c1 ~ r2,c2 에 모두 degree를 더하거나 빼는 연산이 정의되어있다. N,M 0 && r1 > 0) damage[(r1-1)*M + c1-1] += degree; } //대미지 합 계산 for(int i = N - 1; i >= 0; i--) { for (int j= M-1; j >= 0; j--) { if..
2023.11.16 -
floating point precision을 완전히 이해하고 있나?
오늘은 모종의 이유로 게임 엔진 스터디에서 floating point precision에 대해 공부했는데, 같이했던 분이 밤에 대충 아래 내용의 카톡을 보내셨습니다. if (1.1 + 0.1 == 1.2) std::cout
2023.11.16 -
GPU를 위한 텍스쳐 압축 기법 (DXT, PVRTC, ETC, ASTC)
유튜브 Unity Korea 채널의 알쓸유잡 - 효율적인 텍스처 압축 이해하기 영상을 참고해 공부한 내용을 정리했습니다. 추가로 유니티의 ETC 관련 블로그 포스팅을 참고했습니다. 기본적으로 텍스쳐는 32bpp, half color 표현시 16bpp로 텍스쳐를 표현한다. 보통 익숙한 png나 jpg등의 가변비율 인코딩 방식은 디스크에 이미지를 저장할 때 사용하는 방식으로, GPU에서 텍스쳐를 사용할 때는 Sample 연산을 위해 다시 원본을 복원해 메모리에 올려야한다. GPU에선 interpolation 등의 이유로 Sample 연산을 무지 많이 해야하기 때문에, 실제 메모리에 올라가는 텍스쳐를 압축하려면 빠른 디코딩이 되어야 하고 Random Access가 되어야한다. 블럭기반 압축 앞으로 설명할 텍스..
2023.11.04 -
[Unity Shader] 간단한 Cloak 쉐이더
이 글은 유니티 코리아 유튜브 채널에 있는 유니티 셰이더그래프 튜토리얼 3 : 투명망토 효과(cloaking, stealth) 를 참고해 초보자가 학습한 내용입니다. 요약 위와 같은 투명인간 효과를 위한 쉐이더를 구현합니다. 쉐이더는 크게 아래의 과정으로 이루어집니다. 기본적인 씬이 렌더링 된 후에(Transparent 단계) 실행되어, 현재 픽셀 위치의 Screen Color를 불러와 표시한다. 현재 픽셀 위치에 vertex normal값을 더해줘 왜곡을 준다. Fresnel 효과로 외곽선 부분에 색을 넣는다. Cloak 쉐이더 Screen Color 구하기 우선 렌더링 파이프라인 애셋에 Screen Color를 버퍼에 담도록 설정해야한다. 여기서 Opaque Texture를 체크해주면 되고, Down..
2023.11.02 -
CS 공부 1 - 비트~숫자/텍스트/색 표현
비트 비트 : 0 or 1 을 표현 기본 boolean 연산 : AND, OR, NOT, XOR 드모르간의 법칙 : A and B = ~A or ~B 정수 정수는 2진수로 표현됨 LSB : Least Significant Bit MSB : Most Significant Bit 정수 표현 방법 냅다 2진수로 표현 : 음수 표현 불가능 맨 앞 비트를 부호로 사용 : 0표현이 2개(1000, 0000)이고, 더하기가 매끄럽지않음 음수는 1의 보수 (양수에서 모든 비트 반전) : 0표현이 2개, 순환 올림 발생(부호비트끼리 더한 뒤 carry를 맨 LSB에 더해줘야함) 따라서 : 2의 보수 (0과 더하면 -1이 되는 수를 -1로 정함) (모든비트 반전 후 +1) 실수 고정소수점 표현 : 비트 일부는 정수부, 일..
2023.10.25