Ronja-tutorials Article Archive¶
원본: Shader Basics
대부분의 튜토리얼은 몇 가지 다른 튜토리얼에만 의존하도록 작성되었으므로 모든 튜토리얼을 읽을 필요는 없지만 셰이더를 처음 접하는 경우 다시 읽어보는 것이 좋습니다....
#렌더링/최적화#shaders원본: Structure
셰이더 구조 셰이더에 대해 이야기할 때 셰이더를 사용자 정의하는 방법을 이해할 수 있도록 셰이더 설정 방법에 대한 대략적인 개요를 설명하는 것부터 시작하고 싶습니다. 대부분의 최신 셰이더에는 변수 pi가 있습니다....
#렌더링/최적화원본: HLSL
HLSL? Hlsl은 “juicy”라는 언어입니다. 유니티 셰이더의 일부가 작성됩니다. 사용자 정의 논리를 포함하고 결국 화면의 어디에 그려질지 결정하는 부분입니다. 그것은’...
#렌더링/최적화원본: Variables
요약 셰이더 단계가 어떻게 구성되는지, 실제 셰이더 코드 외부에서 셰이더랩의 대략적인 개요를 설명한 후, 셰이더가 작동하기 위해 필요한 변수와...
#렌더링/최적화원본: Basic Shader
요약 지난 세 개의 튜토리얼에서 셰이더 작동 방식의 초석 중 일부를 설명했습니다. 이번 글에서는 나머지 부분을 채우는 방법을 보여드리겠습니다. 내가 보여주지 않은 가장 중요한 것은 실제로 실행된 것이었습니다....
#렌더링/최적화#shaders원본: Surface Shader Basics
요약 거의 처음부터 셰이더를 작성하는 것 외에도 Unity를 사용하면 일부 매개변수를 정의하고 복잡한 조명 계산을 수행하는 코드를 생성할 수 있습니다. 그 셰이더...
#렌더링/최적화#shaders원본: Basic Transparency
요약 화면에 색상을 칠하는 것 외에도 이전에 화면에 있었던 색상 중 일부를 보존하여 개체가 투명하게 보이도록 만들 수도 있습니다. 아치를 어떻게 할 수 있는지 설명해줄게...
#렌더링/최적화원본: Sprite Shaders
요약 유니티에서 스프라이트가 렌더링되는 방식은 3D 객체가 렌더링되는 방식과 매우 유사합니다. 대부분의 작업은 스프라이트 렌더러 구성 요소에 의해 수행됩니다. 구성 요소가 수행하는 작업에 대해 조금 살펴 보겠습니다....
#렌더링/최적화#shaders원본: Planar Mapping
요약 때로는 개체에 텍스처 좌표가 없거나 여러 개체의 텍스처를 정렬하고 싶거나 자체 UV 좌표를 생성해야 하는 다른 이유가 있는 경우가 있습니다....
#툴/파이프라인원본: Color Interpolation
요약 화면에 그리려는 출력에 두 개 이상의 색상이 들어가는 경우가 많습니다. 두 색상을 결합하는 간단한 방법은 다른 매개변수를 기반으로 두 색상을 보간하는 것입니다. 이 쯧쯧...
#렌더링/최적화원본: Triplanar Mapping
요약 이전에 평면 매핑에 대한 튜토리얼을 만들었습니다. 이 기술의 가장 큰 단점은 한 방향에서만 작동하고 우리가 그리는 표면의 방향이 맞지 않으면 끊어진다는 것입니다....
원본: Checkerboard Pattern
요약 나에게 셰이더와 관련된 가장 흥미로운 작업 중 하나는 절차적 이미지입니다. 시작하기 위해 간단한 체커보드 패턴을 만들어 보겠습니다. 이 튜토리얼은 다음을 기반으로 합니다....
#렌더링/최적화원본: Fresnel
요약 사람들이 셰이더에서 프레넬 효과로 사용하는 일반적인 효과입니다. 프레넬을 사용하면 개체의 윤곽을 어둡게 하거나 밝게 하거나 색상을 지정하여 깊이감을 높일 수 있습니다. 이 튜토리얼에서는...
#렌더링/최적화원본: Custom Lighting
요약 표면 셰이더는 훌륭하며 표준 PBR 모델을 사용할 수 있다는 점은 매우 강력합니다. 하지만 우리가 항상 PBR 조명을 원하는 것은 아닙니다. 때때로 우리는 조명을 GE로 취급하는 방식을 바꾸고 싶습니다....
#렌더링/최적화원본: Polygon Clipping
요약 물론 지금까지 우리가 렌더링한 모든 것은 다각형으로 만들어졌는데 누군가 셰이더의 점 목록을 기반으로 다각형 모양을 자르는 방법을 물어보았으므로 이제 그 방법을 설명하겠습니다. 특급하겠습니다...
#환경/지형#렌더링/최적화원본: Vertex Displacement
요약 지금까지 우리는 정점 셰이더를 사용하여 정점을 개체 좌표에서 클립 공간 좌표(또는 다른 작업에 사용한 월드 공간 좌표)로 이동했습니다. 부...
#렌더링/최적화원본: Postprocessing Basics
요약 우리는 모델을 화면에 렌더링하기 위해 지금까지 이 튜토리얼에서 작성한 모든 셰이더를 사용했습니다. 셰이더가 일반적으로 사용되는 또 다른 방법은 셰이더를 사용하여 이미지를 조작하는 것입니다. 여기에는 우리가 알고 있는 이미지도 포함됩니다....
#렌더링/최적화원본: Postprocessing with the Depth Texture
요약 지난 튜토리얼에서 나는 매우 간단한 후처리 효과를 수행하는 방법을 설명했습니다. 고급 효과를 수행하는 중요한 도구 중 하나는 깊이 버퍼에 액세스하는 것입니다. 거리가 멀어지는 질감이에요...
#툴/파이프라인원본: Postprocessing with Normal Texture
요약 후처리에 매우 유용하고 쉽게 얻을 수 있는 또 다른 정보는 장면의 법선입니다. 주어진 픽셀의 표면이 어느 방향에 있는지 보여줍니다....
#툴/파이프라인원본: Outlines via Postprocessing
요약 제가 가장 좋아하는 후처리 효과 중 하나는 윤곽선입니다. 후처리를 통해 윤곽선을 작성하면 많은 이점이 있습니다. 대안(역선체 윤곽선)보다 가장자리를 더 잘 감지합니다....
원본: Hull Outlines
요약 지금까지 우리는 셰이더당 한 번만 화면에 색상을 썼습니다(또는 Unity가 표면 셰이더를 통해 여러 패스를 생성하도록 함). 하지만 메쉬를 여러 번 그릴 수 있는 가능성이 있습니다....
#렌더링/최적화원본: Clipping a Model with a Plane
요약 또 다른 멋진 효과는 표면이 특정 평면을 넘어서면 사라지게 만드는 것입니다. 이 튜토리얼을 따르려면 표면 셰이더가 어떻게 작동하는지 아는 것이 가장 좋습니다. 표면 셰이더가 어떻게 작동하는지 튜토리얼을 찾을 수 있습니다....
#렌더링/최적화원본: Stencil Buffers
요약 깊이 버퍼는 객체의 깊이를 비교하여 객체가 서로 제대로 가려지는지 확인하는 데 도움이 됩니다. 그러나 "스텐실 작업"을 위해 예약된 스텐실 버퍼의 일부도 있습니다....
원본: Blur Postprocessing Effect (Box and Gauss)
요약 예를 들어 피로를 표시하거나 전환을 만드는 데 유용한 효과는 흐림입니다. 화면을 흐리게 하기 위해 주변 픽셀의 평균을 취합니다. ma에서 효과를 사용할 수 있습니다....
#vfx원본: White Noise
요약 많은 효과에 대해 우리는 쉐이더에서 패턴이나 다른 것들을 생성하기 위해 난수를 원합니다. 이러한 무작위 값을 직접 사용하면 "백색 잡음"이라고 하는 패턴이 생성됩니다. 티...
원본: Value Noise
요약 지난 튜토리얼에서 우리는 셰이더에서 난수를 생성하는 방법을 배웠습니다. 여기서는 더 부드러운 노이즈를 생성하기 위해 난수 사이를 보간하는 방법을 살펴보겠습니다....
#렌더링/최적화원본: Perlin Noise
펄린 노이즈(Perlin Noise) 또 다른 일반적인 형태의 노이즈 중 하나는 펄린 노이즈입니다. Perlin 노이즈는 소위 "그라디언트 노이즈"를 구현한 것 중 하나입니다. 값 노이즈와 마찬가지로 CE를 기반으로 합니다....
원본: Layered Noise
계층화된 노이즈 지금까지 우리가 생성한 노이즈는 항상 매우 약하거나 매우 시끄러워 보였습니다. 여러 레이어의 노이즈를 서로 겹쳐서 이를 개선할 수 있습니다. 그런 식으로 우리는 구조를 얻습니다....
원본: Voronoi Noise
요약 잡음의 또 다른 형태는 보로노이 잡음입니다. 보로노이 노이즈의 경우 여러 점이 필요하며 어느 점이 가장 가까운지에 따라 패턴을 생성합니다. voronoi noi의 구체적인 구현...
원본: Tiling Noise
지금까지 우리는 영원히 지속되는 소음을 생성했습니다. 그러나 어떤 경우에는 특정 거리 이후에 반복되는 노이즈를 원하는 경우가 있는데, 주로 텍스처에 노이즈를 굽는 경우입니다. 이번 화에서는...
#툴/파이프라인원본: Baking Shaders into Textures
셰이더에서 즉시 모든 것을 계산하는 것은 우리에게 가장 큰 유연성을 제공하며 많은 효과에도 필요합니다. 그러나 노이즈가 동적으로 필요하지 않으면 텍스처 t에 저장할 수 있습니다....
#렌더링/최적화#툴/파이프라인#shaders원본: Single Step Toon Light
툰쉐이더를 어떻게 만들까 고민하다가 나온 결과입니다. 분명히 다양한 툰 스타일이 있으므로 이는 많은 가능성 중 하나일 뿐입니다. 하지만 결과가 아니더라도...
#캐릭터/연출#렌더링/최적화원본: Improved Toon Light
지난 주 튜토리얼은 간단한 툰 셰이더를 만드는 것에 관한 것이었지만 아직 개선할 부분이 많다고 느꼈기 때문에 이번 주 튜토리얼도 마찬가지입니다. 문제를 해결하고 여러 가지를 추가하겠습니다....
#캐릭터/연출#렌더링/최적화원본: Flowing River
이 튜토리얼은 셰이더를 통해 강을 만드는 방법에 대한 사례 연구입니다. 이 디자인에 대한 영감은 Eris의 이 게시물(https://twitter.com/Erisdraw3D/status/1056931358185086976)에서 나왔습니다. 튜토리얼은 다음을 통해 수행됩니다....
#환경/지형#렌더링/최적화원본: 2D Signed Distance Field Basics
지금까지 우리는 모양을 표현하기 위해 주로 다각형 메쉬를 사용했습니다. 메쉬는 렌더링하기가 가장 쉽고 가장 다양하지만 2D 및 3D에서 모양을 표현하는 다른 방법도 있습니다. 사용되는 한 가지 방법...
#렌더링/최적화원본: 2D SDF Combination
지난 튜토리얼에서 우리는 부호 있는 거리 함수를 사용하여 간단한 모양을 만들고 이동하는 방법을 배웠습니다. 여기서는 여러 모양을 결합하여 더 복잡한 거리 필드를 만드는 방법을 배웁니다. 나는...
원본: 2D SDF Space Manipulation
폴리곤 애셋을 사용할 때는 한 번에 하나의 객체만 그릴 수 있지만(배칭 및 인스턴스화와 같은 작업은 무시) 서명된 거리 필드로 작업할 때는 동일한 제한에 얽매이지 않습니다....
원본: 2D SDF Shadows
이제 부호 있는 거리 함수를 결합하는 방법에 대한 기본 사항을 알았으므로 이를 사용하여 멋진 작업을 수행할 수 있습니다. 이 튜토리얼에서는 이를 사용하여 2D 부드러운 그림자를 렌더링합니다. 만약 당신에게...
#렌더링/최적화원본: Texture Dissolve
이 튜토리얼은 메시를 텍스처 패턴에 디졸브시키는 방법에 관한 것입니다. 이 튜토리얼에서는 표면 셰이더를 사용할 것이므로 아직 작동 방식을 이해하지 못한다면 참조해 드릴 수 있습니다....
#렌더링/최적화#툴/파이프라인원본: Screenspace Textures
텍스처 좌표를 생성하는 방법에는 여러 가지 기술이 있습니다. 이전 튜토리얼에서는 UV 좌표를 사용하는 방법과 평면 및 삼면 매핑을 기반으로 좌표를 생성하는 방법을 설명했습니다. 이것에 w...
#툴/파이프라인원본: Halftone Shading
이 튜토리얼은 하프톤 셰이딩이라는 또 다른 일반적인 툰 셰이딩 기술에 관한 것입니다. 일반 셰이딩과 달리 전체 조명 또는 전체 조명 해제만 색상으로 사용하지만 하드 컷도 생성하지 않습니다....
#캐릭터/연출#렌더링/최적화원본: HSV Color Space
지금까지 우리는 셰이더에서 항상 RGB 색상을 사용했습니다. 즉, 색상 벡터의 구성 요소는 항상 색상의 빨간색 녹색 및 파란색 구성 요소에 매핑됩니다. 색상을 렌더링하려는 경우 이는 매우 좋습니다....
#렌더링/최적화원본: Dithering
우리는 셰이더에서 어떤 종류의 그라데이션을 사용하는 경우가 많지만, 표현하려는 것보다 적은 색상 음영으로 제한되는 경우가 있습니다. 다양한 C를 가지고 있는 것처럼 위장하는 일반적인 기술...
#렌더링/최적화원본: Spheretracing Basics
레이트레이싱은 거대한 주제이며 많은 사람들에게 무섭고 접근하기 어려운 주제입니다. 이전에 2D 공간에서 탐색한 부호 있는 거리 필드를 사용하여 수행할 수 있는 특정 종류의 레이트레이싱...
원본: Spheretracing with Shading
이전 튜토리얼에서 나는 부호 있는 거리 함수를 추적하여 실루엣을 드러내는 방법을 보여주었습니다. 이번 글에서는 셰이더를 확장하여 간단한 조명을 추가하고 객체가 보이도록 만드는 방법을 보여 드리겠습니다....
#렌더링/최적화원본: Handling Depth for Spheretracing
볼류메트릭 렌더링 시리즈의 지난 2개 튜토리얼에서는 3D 부호 있는 거리 필드를 추적하는 방법과 결과를 셰이딩하는 방법을 보여주었습니다. 제 생각에는 셰이더 상태의 가장 큰 단점은...
#렌더링/최적화원본: Partial Derivatives (fwidth)
편미분 함수 ddx, ddy 및 fwidth는 가장 적게 사용되는 hlsl 함수 중 일부이며 처음에는 꽤 혼란스러워 보이지만 저는 이 함수를 많이 좋아하고 몇 가지 간단한 기능을 가지고 있다고 생각합니다....
원본: Inverse Lerp and Remap
이전 튜토리얼에서 나는 내장된 lerp 함수가 어떻게 작동하는지 설명했습니다. 이제 여기에 remap 기능뿐만 아니라 inverse lerp도 추가하고 싶습니다. 이는 내장된 기능이 아니므로 우리는...
원본: Instancing and Material Property Blocks
현재 상태 이 튜토리얼에서는 기본적인 언릿 셰이더를 사용하겠습니다. 그 이후의 모든 튜토리얼에서는 항상 "재료별" 속성을 설정했습니다. 기초. 이 알로...
#렌더링/최적화원본: Sprite Outlines
나는 이미 장면의 깊이와 법선을 분석하거나 선체를 사용하여 모델을 두 번 렌더링하여 프로그램에서 윤곽선을 생성하는 두 가지 방법에 대해 이야기했습니다. 두 가지 모두 우리가...
#렌더링/최적화원본: Compute Shader
지금까지 우리는 고정 파이프라인을 사용하여 텍스처로 렌더링하기 위해 항상 셰이더를 사용했지만 최신 그래픽 카드는 그 이상을 수행할 수 있습니다(때로는 &ldq의 경우 GPGPU라고도 함)....
#렌더링/최적화#툴/파이프라인#shaders원본: Graphics.DrawProcedural
마지막 튜토리얼에서는 컴퓨팅 셰이더 기본 사항, 값을 생성하는 방법, 해당 값을 CPU로 다시 읽어와 사용하는 방법에 대해 설명했습니다. 이 모든 것에서 중요한 측면 중 하나는 CPU에서 GPU로 데이터를 복사하는 것입니다....
#렌더링/최적화원본: Object Outlines
나는 깊이와 일반 버퍼를 사용하거나 스프라이트의 인접 픽셀을 샘플링하는 후처리 효과로 반전된 껍질을 사용하여 윤곽선에 대한 여러 튜토리얼을 이미 만들었지만...
#렌더링/최적화원본: Polar Coordinates
지금까지 우리는 좌표를 사용할 때마다 사물을 조작하고 밀 수 있는 2~3개의 축으로 구성된 명확한 그리드를 사용했습니다. 객체, 세계, 화면, UV 공간과 같은 여러 공간이 있었습니다....
#환경/지형원본: Unlit Dynamic Decals/Projection
VFX를 수행할 때 종종 바닥에 물건이 붙어 있기를 원합니다. 바닥이 울퉁불퉁해도 말이죠. 또는 기존 형상을 더욱 흥미롭게 만들기 위한 데칼, 고르지 못한 바닥에 얼룩 그림자를 원하는 경우 등...
#환경/지형#렌더링/최적화