| 일 | 월 | 화 | 수 | 목 | 금 | 토 | 
|---|---|---|---|---|---|---|
| 1 | ||||||
| 2 | 3 | 4 | 5 | 6 | 7 | 8 | 
| 9 | 10 | 11 | 12 | 13 | 14 | 15 | 
| 16 | 17 | 18 | 19 | 20 | 21 | 22 | 
| 23 | 24 | 25 | 26 | 27 | 28 | 29 | 
| 30 | 
- Niagara
 - JavaScript
 - unreal niagara
 - jquery
 - League of Legend
 - kanban
 - unreal compute shader
 - HTML
 - carousel indicator
 - CSS
 - texture render target
 - niagara.pdb 로드되지 않음
 - Agile 게임 개발
 - Compute Shader
 - render target
 - unreal visual studio
 - HLSL
 - page dot
 - scroll-snap
 - unreal c++ #unreal #unreal build #unreal
 - visual studio integration tool 상태
 - Unreal
 - Fluid simulation
 - IntersectionObserver
 - render target2d
 - unreal niagara with compute shader
 - hlsl with unreal
 - unreal compute shader #unreal niagara #unreal #compute shader #unreal niagara with compute shader
 - Riot Games
 - Game Developement
 
- Today
 
- Total
 
목록전체 글 (14)
Nephrite21
전체 코드 구조파티클 개수만큼 각각의 위치, 속도, 예상위치와 spatial offset 값을 0으로 설정,이후 Execute Base Compute Shader를 통해서 각각의 위치를 네모나게 설정해준다.이후 나이아가라 설정.이후 Event tick마다 PreProcessing -> Update Spatial Hash -> Sort And Calc Offsets -> Calc Densities -> Apply Pressure -> SPH PostProcessing -> 나이아가라 업데이트 순서로 진행한다.모든 Compute Shader 프로세스가 Async 이므로, 프레임이 끝나야 다음 값으로 진행하도록 설정해두었다.모든 코드는 https://github.com/Nephrite21/SPHSlime 에 ..
기존에 Render Target을 이용해서 작업한 방식은 결과가 오염되는 현상?이 있어서 compute shader를 이용한 방식으로 변경했었다. Shadeup 플러그인을 통해 compute shader를 제작하고, 해당 셰이더를 호출하는 함수를 블루프린트에서 호출하는 방식이다.블루프린트 입력cpp로 이동셰이더 연산cpp로 데이터이동블루프린트로 데이터 이동나이아가라로 화면에 출력위와 같이 대규모 데이터를 블루프린트 -> cpp -> gpu -> cpp -> 블루프린트 -> 나이아가라 로 이동하는 과정을 각각의 단계마다 반복을 한다. 결과적으로 라이젠5 3700x, rtx2070슈퍼 환경에서 10만개의 파티클을 실시간으로 처리하지 못하고 3~4프레임씩 스킵되는 현상이 일어났고, 이를 해결하기 위해 단계를 ..
결론부터 말하자면 기존에 Render Target을 이용해서 값을 읽어오는 방식은 사용이 불가능해서 Vector Array를 이용하기로 했다.이유는 Render Target이 데이터를 읽고 쓰는 과정에서 한 프레임 내에서는 값이 유지되지만, 다음 프레임에 이것을 액세스 했을 때 기존의 값과 동일하다는 것을 보장할 수 없다는 것을 확인했기 때문이다.Render Target의 기존 값에 일정 값을 더해 재할당하는 셰이더코드를 작성했을 때, Render Target에 Game 씬의 일부가 렌더링 되는 것을 확인해서 이렇게 사용하는 것은 불가능할 것 같다고 판단했다.사실 굳이 Render Target을 이용하고자 했던 이유는 Shadeup에서 제공하는 Compute Shader의 구조도 단순했고, 데이터 입출력..
나이아가라에서 파티클 각각의 위치를 받기 위해서는 먼저 Render Target을 나이아가라에 등록해야 한다.이를 위해서 일단은 액터 블루프린트 클래스를 만들어준다.나중에 언젠가는 슬라임 시뮬레이션에 쓰일 예정이므로 블루프린트 이름을 BP_Slime으로 설정했다.이렇게 생성하고 좌측위 컴포넌트 추가를 통해 Niagara System을 만들고 이름을 NS_Renderer로 설정해준다.이제 이 컴포넌트에 나이아가라 시스템을 달아주기 위해 새로운 나이아가라 시스템을 만들어주고, 이름을 똑같이 NS_Renderer로 설정해준다.Empty Emitter가 하나 추가된 시스템을 만들고,사용자노출값(User Exposed)에서 Texture Render Target을 지정하고, 이름을 TRT로 설정해준다.프로퍼티를 ..
https://unreal.shadeup.dev/ Shadeup HomeSHADEUP More shaders less boilerplate Shadeup is a CLI-based scaffolding tool for rapidly whipping up shaders in Unreal Engine 1. Install $ npm i @shadeup/unreal -g 2. Generate $ cd my-unreal-engine-project $ shadeup-unreal ? Which plugin do you want to usunreal.shadeup.dev위 사이트에서 받아온 코드 분석 2번째입니다.가장 먼저 Public 하위의 TestShader.h 부터 살펴보겠다.#pragma once#include..
이제 Shaderup 코드를 이해해 볼 차례이다.Shaderup 세팅을 통해서 얻은 코드는 다음과 같다. (모든 디렉토리는 Unreal Project 솔루션 파일의 탐색기에서 확인한 디렉토리이다. 실제 로컬 디렉토리와는 다를 수 있다.)1. Plugins/{설정한 플러그인 이름}/Shaders/{설정한 모듈 이름}/Private/{설정한 셰이더 이름}/{설정한 셰이더 이름}.usf2. Plugins/{설정한 플러그인 이름}/Source/{설정한 모듈 이름}/Private/{설정한 셰이더 이름}/{설정한 셰이더 이름}.cpp3. Plugins/{설정한 플러그인 이름}/Source/{설정한 모듈 이름}/Private/{설정한 셰이더 이름}/{설정한 셰이더 이름}.h4. Plugins/{설정한 플러그인 이름}..