3D6 [DirectX3D] 폭죽 효과(파티클효과 응용) DirectX11 3D 상수버퍼, 쉐이더를 사용한 폭죽 효과 기능 구현에 필요한 코드외 생략 하도록 합니다. 이전에 구현하는 눈내리는 효과와는 다르게 하나의 정점에서 시작되어 파티클이 퍼지는 효과입니다. 파티클은 퍼지는 강도, 중력값 등의 조절을 통하여 퍼지는 방식을 변경할 수 있습니다. 피격, 스킬, 블러드 이펙트 등등에 사용할 수 있지않을까 생각합니다. 폭죽 효과를 적용하기 위한 클래스 생성 (접은글 참조) 더보기 // Pop.h #pragma once struct POP_DESC { float duration;//총 재생시간 float time;// 현재 재생중인시간 float gravity;// 중력값 float padding; POP_DESC() { gravity = 60.0f; } }; cla.. 2023. 8. 30. [DirectX3D] 눈내리는 효과(파티클효과 응용) DirectX11 3D 상수버퍼, 쉐이더를 사용한 눈내리는 효과 기능 구현에 필요한 코드외 생략 하도록 합니다. 구현된 기능은 카메라의 시점에 고정되어져 RTT, PostEffect 처럼 렌더에 적용되는 효과가아닙니다. 3D 공간에 정해진 범위 내에 효과가 적용됩니다. 단, 효과에 사용되는 이미지들은 BillBoard Rendering과 같은 방식으로 카메라가 바라보는 방향으로 정면이 위치하기 때문에 어느방향에서 보아도 같은 이미지로 보이게 되어있습니다. 환경효과(눈, 비, 흩날림...)를 적용하기 위한 클래스 생성 (접은글 참조) 더보기 // Rain.h #pragma once class Particle { protected: //현재 재생중인 시간 float playTime = 0.0f; //재생중인.. 2023. 8. 29. [Graphics] D3D11 렌더링 파이프 라인(Rendering Pipeline) 렌더링 파이프라인 ? DirectX 3D Graphics에서의 렌더링 파이프라인은 그래픽스 카드에서 3D 모델을 렌더링하는 과정을 각각의 단계별로 나타낸 것입니다. 렌더링 파이프라인은 크게 두가지 버전으로 나뉘게 됩니다. 1. 고정 함수 파이프라인 2. 프로그래머블 파이프라인(DirectX 10 이후부터 지원 현재 배우는 기준은 DirectX11) 두가지의 버전중에서 프로그래머블 파이프라인이 더 우연하며 강력한 기능을 제공합니다. 때문에 프로그래머블 파이프라인을 기준으로 각 단계에 대하여 정리하도록 합니다. 렌더링 파이프 라인의 단계(생략가능, 필수) 1. 입력 어셈블러(IA - Input Assembler) 정점(버텍스)데이터를 가져와 점, 선, 삼각형 등의 프리미티브를 조합 생성합니다. 버텍스 버퍼,.. 2023. 8. 10. [Graphics] 직사(Directional), 점(Point), 스포트(Spot) 라이트 Light 3D 그래픽스에서 조명 효과를 위하여 사용되는 주된 빛(조명)의 유형 3가지에 대하여 정리합니다. 조명의 유형은 다양한 방식으로 객체(Object)나 장면(Scene)에 적용하여 좀더 입체적이고 현실적인 시각적 효과를 만들어 내는 기능을 합니다. 1. 직사 광원 (Directional Light) 무한대로 뻗어나가는 병렬형태의 빛을 의미합니다. 빛의 방향이 일정합니다. 모든 지점에 동일한 강도로 조명하며, 전역적인 조명 효과입니다. 주로 자연광(태양 또는 천체)의 시뮬레이션에 사용됩니다. 2. 점 광원 (Point Light) 하나의 좌표(점)에서 빛이 모든방향으로 방출되는 조명을 의미합니다. 빛의 위치에 따라 조명의 범위가 정해지고 빛이 원점에서 멀어질수록 빛의 강도는 약해집니다. 주변에 빛.. 2023. 8. 6. [DirectX3D] 레이 캐스팅 ( Ray Casting ) & 레이 트레이싱 ( Ray Tracing) (feat.충돌) 레이 캐스팅 ? 레이 캐스팅이란 빛(Ray)를 쏴서(Casting) 충돌한 물체의 표면을 감지하는 기술 입니다. 빛의 시작지점 부터 물체까지의 거리를 바탕으로 얼마나 가까이에 렌더링해야하는 지를 결정할 수 있습니다. 화면의 임의 위치에 모든 픽셀마다 카메라가바라보고 있는 방향으로 빛을 투사한 후 충돌체 까지의 거리를 구하여 충돌체 까지의 거리가 멀수록 가로 1픽셀 짜리 짧은 세로줄을 해당 합니다. 반대로 거리가 가까울 수록 가로 1픽셀 짜리 긴 세로줄을 해당 하여 그리는 방식으로 원근감이 있는 3D 느낌을 줄 수 있습니다. (즉, 멀수록 작아보이고 가까울 수록 커보이게 됩니다.) 위처럼 레이 캐스팅은 무한하게 뻗어있는 점들이 마치 선처럼 구성되어 있는 형태 입니다. D3D 에서 레이 캐스팅 관련 코드 예.. 2023. 5. 31. [C++/DX11] 3D 가위바위보 Shader & Mesh 로 만든 xml 파일을 이용하여 가위바위보 하는 애니매이션을 만들었습니다. 만들어야하는 부분 간단한 3D형태의 손 (관절은 마음대로 만들어보기) 2개(Player & Com) 조건에따라 애니매이션 변경하기(가위,바위,보) 4개의뷰 (정면,위쪽,좌측,오른쪽) CAM 우선 손모양의 xml 파일이 필요하므로 기본적인 xml파일에 shader & mesh 파일을 넣었습니다. 작성한 xml파일은 아래의 접은글에 참조합니다. (관절의 이름을 짧고간단하게 대충지어버렸습니다.) 더보기 디버깅 & imGui 창을 이용하여 세세한 위치들을 조절하였습니다. 대략적인 손모양을 만들고 해당 xml 파일을 불러오고 관리하도록 Actor 필터에 Hand 클래스를 생성합니다. 해당클래스는 기존에 제작했던 클.. 2023. 5. 21. 이전 1 다음