본문 바로가기

전체 글

(284)
포켓몬스터 피카츄 키캡 리뷰 생일로 키보드를 선물 받았다! 무려 텐키리스 무선 로지텍 키보드 + 피카츄 키캡(한정)!! 키캡 리무버로 하나씩 교체해서 드디어 완성되서 리뷰 ㄱㄱ 먼저 전체샷. 굉장히 이쁘다. 기존에 사용하던 레오폴드 fc900r 컴퓨터실 감성에서 교체했다. 이전에 사용하던 키보드도 좋긴했지만 오래 사용하기도 했고 오른쪽 어깨가 안좋아서 텐키 있는 키보드가 은근 거슬리던 참에 텐키리스 무선 로지텍 키보드를 선물 받았다 ㅎㅎ키보드 자체가 워낙 이쁜데다가 로지텍 키보드 자체가 키감이 좋아서 매우 마음에 들었다. 다만, 소리가 기존 키보드 보다 커서 밤에 조용히 타자 쳐야지 생각했음! 근데 피카츄 키캡으로 바꾸니까 소리도 적당하고 정말 최고다! 기존 키보드와는 다른 키감에 색다른 느낌이 들어서 기분이 매우 좋음.작년에..
언리얼 2D 에서 Translucent 머티리얼을 사용하는 기초적인 방법 언리얼 2D 를 공부 중이다. 언리얼 게임으로 만들어진 HD2D 게임들을 보면서 언리얼 2D 게임 제작에도 관심이 생겼기 때문이다. 공부 중에 Masked 머티리얼을 Translucent 머티리얼로 교체하는 경우가 많다. 이유를 알기 위해 구글 + ai + 기존 나의 그래픽스 지식의 도움을 받았다. 아래 이미지 먼저 보면 오늘 할 이야기를 확실히 이해할 수 있다. 캐릭터는 정확하게 나무 뒤에 있다. 그렇다고 나무를 통과할수는 없다. 나무를 통과 못하는 것은 콜리전으로 조절한것이고 렌더링 과정에서 내 주 캐릭터인 저 빨간 모자 캐릭터는 왜 나무 뒤 쪽으로 자연스럽게 렌더링될까?? 언리얼 프로젝트의 기본 셋팅 중에는 반투명 정렬 정책이라는 셋팅이 존재한다. 여기에서 Distance 는 기본 3d 게임에..
Bloom Filter 와 Post-Processing 정리 기본 시스템 구조Copy Filter최종 화면부터 생성한 그래픽스 결과를 사본으로 관리Downsampling + Threshold BuildFilters 함수 중에// 해상도를 낮춰서 다운 샘플링 auto copyFilter = make_shared(m_device, m_context, L"Sampling", L"Sampling", m_screenWidth, m_screenHeight); copyFilter->SetShaderResources({m_shaderResourceView}); m_filters.push_back(copyFilter); auto downFilter = make_shared( m_device, m_context, ..
Post Processing 3D 렌더링 이후에 화면에 다양한 효과를 적용하는 "후처리(Post Processing)"는 게임 그래픽스에서 아주 중요한 파이프라인입니다. 이번 글에서는 이미지 필터 클래스를 활용해 후처리 필터를 구현하는 구조와 개념을 차근차근 살펴보겠습니다. 1. 이미지 필터 클래스 구조다양한 쉐이더를 효율적으로 관리하기 위해 ImageFilter 클래스가 사용됩니다.생성자에서 버텍스/픽셀 쉐이더의 접두사(prefix)를 설정하면 쉐이더 파일명을 자동으로 결정합니다. 2. 후처리용 텍스처 초기화일반 모델 텍스처와 다르게 클램프(Clamp) 모드 사용Depth Buffer는 불필요하므로 비활성화이미지 해상도는 자유롭게 조절 가능고품질 처리를 위해 R32G32B32_FLOAT 혹은 128비트 float 포맷 사용 3. ..
fresnel 효과 fresnel 효과?빛이 물체 표면에 닿을 때, 시야각(=입사각)에 따라 반사되는 빛의 양이 달라지는 현상 아래 사진을보면 멀리 있는 수면 위에는 나무가 그려진다. 가까이 있는 수면 그러니까 시선과 수직에 가까운 수면에는 물고기가 그려진다. 이것이 fresnel 효과이다. 이 효과를 적용할 때 일단은 빛의 굴절은 적용하지 않는 것으로 한다.fresnel 함수를 보면 물질의 고유 특성과 노멀 값, eye pos 로 구현한다. 픽셀로 시선과 노멀을 내적으로 해서 가까운지 멀리있는지에 따라 값을 바꾸도록 f0 를 만든다.return 에서 내적의 결과에 따라 가까울수록 물체의 고유 성질 fresnelR0 만 적용하고 멀리 있으면 f0 값이 더욱 많이 적용되도록 한다. float3 SchlickFresnel(..
이미지 기반 라이팅 현실같이 복잡한 조명 상황을 만들기에는 퐁 쉐이딩 만으로는 무리가 있다. 그래픽스에서는 텍스처를 잘사용하는 방식으로 성장 중이다. 그래서 환경맵 자체를 조명으로 사용하도록 만들기 시작함. 그래서 아래처럼 다양한 방향에서 샘플링 해온다음에 평균을 내기도함. 다만, 이건 게임에는 못씀. 연산이 너무 많기 때문임 그래서 게임에서는 다른 방식을 사용함. 텍스처를 미리 저 평균처럼 만들어 놓는 것.아래 사진은 각 디퓨즈와 스펙큘러다. 저 위에 평균을 이용해 텍스처에 각 라이팅 정보를 넣어두고 다양한 텍스처를 사용하는 것이다. 사용할 리소스 뷰를 디퓨즈와 스펙큘러 용으로 나눠서 추가한다.// 물체 렌더링할 때 큐브맵도 같이 사용ID3D11ShaderResourceView *resViews[3] = { me..
환경 매핑(반사 매핑) 환경 매핑 배경의 텍스처를 오브젝에 매핑하는 것을 의미한다.아래 사진은 배경의 반대편 모습을 구체에 담아낸 것이다. 이 반사매핑을 이용하면 배경과 모델의 라이팅 분위기를 매칭 시킬 수 있다. 느낌이 비슷해짐. 구현 방식은 그냥구체의 각 정점의 노말 벡터로 RayTrace 해서 색을 가져와 해당 vertex에 맞는 픽셀에 샘플링하면 된다. 그러니까 Render 함수에서 물체를 그릴때 2가지 리소스 뷰를 넘겨준다.PS 에서 텍스처를 하나 더 추가. 그리고 리턴 시 큐브 맵으로부터 샘플링한다. 이동은 적용되지 않도록 normalWorld 를 기준으로 샘플링한다.Texture2D g_texture0 : register(t0);// TODO:TextureCube g_textureCube1 : register(..
큐브 매핑 큐브 맵(Cube Map)이란?큐브맵은 정육면체 6개의 면에 이미지를 입힌 텍스처 형태이 6면을 통해 360도 전 방향을 표현할 수 있어서, 주로 환경 반사, 하늘, 광원 효과, 스크린 프로브 등에 사용 큐브 맵 같은 특수 텍스처를 사용하기 위해 DDS 파일 형식을 사용한다. DDS 파일이란?DDS (DirectDraw Surface)는 마이크로소프트가 만든 텍스처 전용 파일 포맷으로,DirectX에서 그래픽 텍스처로 빠르게 사용하기 위해 설계된 압축된 바이너리 포맷입니다. 큐브 맵 전용 구조체. 큐브 맵은 렌더링 하고 싶은 세상을 감싸는 것이기 때문에 박스 메쉬를 가지고 있어야한다.dds 파일로부터 큐브 맵 텍스처를 만들고 그 텍스처를 쉐이ㅏ더에 넣어줄 수 있도록 쉐이더 리소스 뷰를 만들어 저장.us..