분류 전체보기 227

2020.06.28. Shader_오브젝트 뒤에 가려진 물체 렌더링

이 코드보고 리뷰해보려고 공부한건데 아직 공부 못한 부분이 많아서 잘 모르겠음 1. 팬텀 쉐이더 출처: z buffer test 를 조작해서 phantom shader 를 만들어 보자 [ 서론 ] 유튜브를 배회하다 우연히 본 동영상. 보다시피 돈주고 사야하는 Asset임. 공식적인 명칭인지는 모르겠지만 팬텀 쉐이더 (phantom shader) 를 오늘 한번 만들어 보겠음. [ 본론 ] 1.어떻게 구현� egloos.zum.com 동영상에 보이는 것처럼 물체 뒤로 가면 색이 들어간 유령처럼 반투명해짐 Stencil 버퍼와 rim lighting 방법을 이용했다고 함 _PhantomPower 변수를 조절해서 불투명 반투명 조절할 수 있음 *이것저것 만져봐서 원래 원작자가 올려주셨던 코드랑 좀 다를 수 있음..

팀프로젝트/R&D 2020.06.28

2020.06.28. Shader_Stencil Buffer, Culling & Depth Test, Pass, Blending

*아직 공부하는 중임* 1. Stencil Buffer stencil Buffer 라는 것이 있다. 이걸 쓰면 포토샵의 마스크처럼 각도에 따라 또는 오브젝트에 가려지는 부분만 렌더링 할 수 있게 함 즉, 마스크 렌더러임 stencil { ref 20 comp Always pass replace } 1)Ref -버퍼에 기록하기 위해 서로 비교하는 값(Comp이 Always가 아닌 경우) -0~255까지 정수타입 -Pass, Fail , ZFail로 대체될 값임 2)Comp -Buffer에 있는 Ref값을 현재 Contents와 비교할 때 사용 ( 디폴트는 Always) 3)Pass -Stencil 테스트와 Depth테스트를 통과한다면 Buffer의 Contents를 어떻게 할 것인지 지정 ( 디폴트는 Ke..

팀프로젝트/R&D 2020.06.28

2020.06.24. 스크롤 뷰 전환 버튼 UI

버튼 입력에 따라 스크롤뷰가 포함된 UI창 전환 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 31 32 33 34 35 36 37 38 39 40 41 42 43 using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.UI; public class App : MonoBehaviour { public Button btn1; public Button btn2; public Button btn3; public GameObject scrollview1; public GameObject scroll..

팀프로젝트/R&D 2020.06.24

2020.06.24. 수업내용 - Shader 3 (움직이는 불 만들기-uv)

텍스처의 uv값을 가감하면 색깔이 더해지는 것처럼 텍스처가 변한다 코드 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 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 Shader "Custom/tex" { Properties { _MainTex ("Albedo (RGB)", 2D) = "white" {} _MainTex2("Albedo (RGB)", 2D) = "black" {} //_FlowSpeed("FlowSpeed",Range(0,1)) = 0 } SubShader { Tags { "RenderType"="Transparent" "Que..

C#/수업내용 2020.06.24

2020.06.23. 수업내용 - Shader2 (Range, lerp)

스니핏 - 조각 코드 스니핏 - 코드 조각 셰이더는 서브셰이더의 리스트로 구성됩니다. 최소한 하나의 서브셰이더가 있어야 합니다. Unity는 셰이더를 로드할 때 서브셰이더의 리스트를 살펴보고 최종 사용자의 기기가 지원하는 셰이더 리스트 중 가장 위에 있는 것을 선택합니다. 만약 지원되는 서브셰이더가 없으면 Unity는 폴백 셰이더 사용을 시도합니다. ->서브셰이더를 여러개 짜놓고 가장 위에 있는 걸 우선적으로 돌리는데 그게 안되면 그 밑에 있는 쉐이더를 돌리고 안되면 그 밑에 있는 쉐이더를 돌리고 그것도 안되면 폴벡 쉐이더를 돌림 슬라이더 만들기 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 31 32 33..

C#/수업내용 2020.06.24

2020.06.22. 수업내용 - Shader

Shader 픽셀의 색을 정해주는 함수 Rendering Pipe 3D 공간안에 있는 물체를 어떻게 스크린에 표현하는가 (Vertex (면을 구성하는 점) 이 어디에 있는지 어떻게 변환하는지) 1. 로컬 좌표계 -모델 좌표계 2. 월드 좌표계 - 모델이 월드에 어디에 있는가 3. 뷰 변환 -스크린->월드 , 월드->스크린 / 뷰포트를 통한 방법 4. 후면 추려내기 back-face culling - 캐릭터 앞쪽만 렌더링함 5. 조명 계산 6. 테셀레이션 GPU에서 정점을 자유자재로 증가, 감소? 7. 클리핑 -안보이는 곳 짤라냄 8. 투영 -원근투영-perspective -직교투영 -Orthographic 9. 뷰포트 변환 (정규좌표계) 10. 래스터라이즈 -변환이 끝난 폴리곤을 화면에 보여줄 픽셀로 계..

C#/수업내용 2020.06.22

11. 2504번 괄호의 값 (해결)

괄호가 먼저 올바른지 따지고 맞으면 괄호 값을 계산함 짝이 맞는 괄호 차례가 오면 괄호를 지우고 해당하는 숫자를 스택에 넣고 다음 차례에 숫자가 오면 int 변수(num)를 만들어서 짝이 맞는 괄호가 올때까지 지워가면서 변수에 넣어줌 foreach를 돌 때마다 num이 0이 아니면 값을 스택에 넣어주고 초기화한다 짝이 맞는 차례가 오면 변수에 x2나 x3을 해줌 그리고 스택에 쌓여있는 숫자들을 한번에 더해서 출력해줌 아무튼 극혐 using System; using System.Collections.Generic; namespace _2504 { class Program { static void Main(string[] args) { string input = Console.ReadLine(); Brack..

C#/알고리즘 2020.06.22

10. 10845번 큐 (해결)

20트.. 해결 방법 1. 출력할 때 string 형 변수에 + \n으로 한번에 집어넣고 마지막에 한번 출력한다. -> 문제에는 명령이 주어질 때마다 한줄에 하나씩 출력하라고 하는데 그러면 시간초과.. 2. string으로 큐를 만든다. -> 문제에는 정수를 저장하는 큐라고 나와있지만 string으로 큐를 만든다 그리고 정수변환을 하지 않고 큐에 넣음 Int.Parse()가 시간이 오래 걸리나봄?? 출력만 한번에 하면 될 줄 알았는데 계속 시간초과 떠서 정수변환을 안했더니 통과했당.. 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 31 32 33 34 35 36 37 38 39 40 41 42 43 44 4..

C#/알고리즘 2020.06.21

2020.06.15. 조명 + 낮, 밤 Cycle 만들기

소중한 시간 절약을 위해 10초 주기로 낮 밤이 바뀌게 했습니다 실제 인게임에서는 30초 주기로 구현할 예정입니다 먼저 10초 주기로 낮->밤, 밤, 밤->낮, 낮 ....싸이클을 코루틴으로 만들어보았음 그리고 각각 밤과 낮에 진입할 때 각 오브젝트의 메테리얼에 접근해서 조명을 켜주고 꺼줬음 그다음 하늘 바꾸기 PolyCity를 만든 제작사에서 무료 에셋인 simple sky를 다운받으면 안에 SkyDome 이 있음 열어보면 해랑 달, 별들이 붙어있는 커다란 반구가 나옴. (구름은 안붙어 있음) 그걸 구조물 위에 얹고 쉐이더를 standard로 바꿔줌 이 반구는 Vector3.up(수직)을 기준으로 빙글빙글 돌려줄거임 여기서 Offset에 접근해서 시간의 흐름에 따라 색상을 바꿔줄거임(이러면 노을이 생김..

팀프로젝트/R&D 2020.06.16

2020.06.14. Emission 모바일에 적용시키기

Emission이 PC에서는 잘되는데 모바일에서 안된다면 해결방법 1. Build Setting -> Player Setting -> Other Settings에서 Auto Graphics ApI를 체크해제 해주고 OpenGLES3 를 제거해준다 OpenGLES3 제거하는 건 아래 링크에 댓글러가 설명해줌 디바이스로 빌드할 때 유니티에서 standard 쉐이더인건 OpenGLES3를 잘못 컴파일 해준다고 생각하는 것 같음 아무튼 그게 맞는 건지 그대로 해서 해결됐다는 사람들이 꽤 있는 모양 Simple shader turns black on Android - Unity Answers answers.unity.com 이 방법으로 안되면 2. Emission이 제어되는 오브젝트에 적용되는 메테리얼에서 Glo..

팀프로젝트/R&D 2020.06.14