부서지는 오브젝트를 처리중입니다.
프로그래머가 다른 물리부분을 피하기 위해서 파괴 오브젝트와 콜리더를 동시에 사라지게 만들었다는걸 인지하였어요.
문제는 그렇게 되면 안되는... 이런거 할때는 좀 같이 고민했으면 좋았을텐데...

'업무일지' 카테고리의 다른 글

업무일지<wind>  (1) 2022.10.07
업무일지<Physics>  (0) 2022.10.06
업무일지<기억>  (0) 2022.10.04
업무일지<Occulsion>  (0) 2022.09.30
업무일지<Setpass calls>  (0) 2022.09.29

신규 스테이지 최적화 완료.


신규 캐릭터 Material 작업 / Texture 셋팅


오브젝트가 파괴되는 부분에 대한 코드를 만든지 오래되서 기억이 가물하여 한참을 들여다봄.
프로그램팀에서 좀더 효과적으로 코드를 고친거 같음.
이해가 안가는건 물체가 파괴되고 파편이 콜리더가 있어야 부디칠텐데.. 프로그램팀에서 파괴와 동시에 콜리더를 같이 사라지게 만들어놨음...??  내가 이렇게 설계를 할리 없는데...

'업무일지' 카테고리의 다른 글

업무일지<Physics>  (0) 2022.10.06
업무일지<...>  (0) 2022.10.05
업무일지<Occulsion>  (0) 2022.09.30
업무일지<Setpass calls>  (0) 2022.09.29
업무일지<왜 빌드시에만 문제가 나올까?>  (0) 2022.09.28

해외팀에서 스테이지 일부를 수정 진행하였는데, 에러가 남... 퀄리티 세팅을 위해서 설정한 라이팅 세팅 관련 부분을 잘 모르고 삭제해서 복구.


 

이 정도면 어느 정도 최적화가 이루어진 듯하네요.

gpu instance 제거와 Occulsion Culling을 사용한 것이 효과적이군요.
이전 스테이지는 라이트맵을 활용하면서 최적화를 진행했는데, 이번에는 오픈형이라서 라이맵을 구울 수가 없었지만,
나름 효과적으로 최적화한거 같습니다.

'업무일지' 카테고리의 다른 글

업무일지<...>  (0) 2022.10.05
업무일지<기억>  (0) 2022.10.04
업무일지<Setpass calls>  (0) 2022.09.29
업무일지<왜 빌드시에만 문제가 나올까?>  (0) 2022.09.28
업무일지 <Deferred는 MSAA가 안되죠>  (0) 2022.09.27

Setpass Call 수치가 너무 높아서 계속 추적한 결과.. Gpu instance 때문이었군요.
너무 적은 양의 오브젝트들에 GPU instance가 적용되어 그 적은양의 오브젝트가 Setpass Call에 부담을 주고 있었습니다.

GPU instance 사용함에 있어서 경고가 있는데, 너무 적은 양의 오브젝트에는 사용하지 말라는것인데... 적절한 비율을 잘 맞춰야 하는데... 첫배경에서 너무 잘 사용하면서 이번에도 좋을거라 생각하고 별 생각없이 적용하다보니,Setpass Call 량이 늘어나는 불상사가 일어났음... 뭐든 맹신하면 안된다는...


AD가 왜 게임에서는 우리 일상처럼 그림자가 안에 그림자가 없는지 물어봤습니다.
게임에서는 실시간 난반사가 없기 때문이고 이것을 구현하려면 따로 해야한다고 설명해주었습니다.
게임속에 라이트는 물체와 라이트간의 관계라기 보다는 물체가 독립적으로 빛을 받았느냐로 판단하지 주변 물체에 대해서 인지않기 때문...라이트도 이름이 라이트이지 그냥 여기서 빛을 쏴준다는 개념이라눈...
그래서 우리는 환경광을 사용하기는 하는데 이게 완전하질 않죠...

때문에 걸 해결하기 위하여 여러 인위적인 꼼수를 써야합니다.


 

 

'업무일지' 카테고리의 다른 글

업무일지<기억>  (0) 2022.10.04
업무일지<Occulsion>  (0) 2022.09.30
업무일지<왜 빌드시에만 문제가 나올까?>  (0) 2022.09.28
업무일지 <Deferred는 MSAA가 안되죠>  (0) 2022.09.27
업무일지<svn revert>  (2) 2022.09.26

오브젝트 애니메이션이 이상하게 안나오는 문제가 있었는데, 이벤트처리를 이전 작업자가 해둔걸 못찾았기 때문이었네요.
유니티에서는 정상적으로 보이는데 ,빌드시에 cloth 오브젝트가 사라지는 문제가 발생했는데, 아마도 중력에 의해 바닥으로 떨어진것으로 보입니다. 이전 리소스와 비교해보니, cloth 오브젝트에 리깅이 안되어있었음...해결...(여전히 의문점은... 왜 유니티에서는 정상적으로 보이고 빌드시 문제가 발생하는지 모르겠음.)


다른 스테이지에 비해서 새로 만든 스테이지에 동적인 화면이 아닌데, frame 폭이 너무 많이 나는것이 이상해서 이것저것 테스트했던 결과..
작업자가 월드 바닥에 바다를 깔아두면서 보이지도 않는 부분에서 전체적으로 드로우가 되면서 포퍼먼스를 잡아먹었던걸로 추정... 바다를 쪼개서 육지쪽 바닥 밑에는 바다를 없앴더니...frame 2~3에서 왔다갔다하는걸 보니 안정화 된거 같군요.


Jenkins는 유니티를 띄워놓으면 빌드가 안된다.


언리얼 서밋이 있었는데...볼 여력이 없으...

'업무일지' 카테고리의 다른 글

업무일지<Occulsion>  (0) 2022.09.30
업무일지<Setpass calls>  (0) 2022.09.29
업무일지 <Deferred는 MSAA가 안되죠>  (0) 2022.09.27
업무일지<svn revert>  (2) 2022.09.26
업무일지  (0) 2022.09.26

생각지도 않게 Jenkins 관리를 하게 될거 같네요...


외주에서 만든 shader와 내부 shader를 하나로 만드는 작업을 진행했습니다.
포인트는 기존에 material이 바뀌지 않도록 Boolean(shadergraph에서는 Branch)으로 추가.


움직이고 파괴되는 오브젝트 작업진행.(이건 너무 예전에 구현해서 기억이 가물하다.. 시간이 필요할듯하군요.)
외주업체가 오브젝트를 너무 복잡하게 구조를 만들어놔서 단순화.
오브젝트에 cloth적용작업.


영상을 찍어야 한다고 안티엘리어싱 설정을 할수 없냐고 문의가 왔습니다.
우리는 Deferred라 후처리 기법을 써야해서 camera에 SMAA을 사용하도록 알려줬습니다.
코드는 아래부분인거 같은데, 알려줬으니..프로그램에서 알아서 하겠지..
cameraGameObject.GetComponent PostProcessLayer>().antialiasingMode = PostProcessLayer.Antialiasing.None;
이 코드가 아닌갑다...(레거시에서 했던 설정인가봄.)

이 코드이다. public HDAdditionalCameraData.SMAAQualityLevel SMAAQuality;
https://docs.unity3d.com/Packages/com.unity.render-pipelines.high-definition@7.1/api/UnityEngine.Rendering.HighDefinition.HDAdditionalCameraData.html

'업무일지' 카테고리의 다른 글

업무일지<Occulsion>  (0) 2022.09.30
업무일지<Setpass calls>  (0) 2022.09.29
업무일지<왜 빌드시에만 문제가 나올까?>  (0) 2022.09.28
업무일지<svn revert>  (2) 2022.09.26
업무일지  (0) 2022.09.26

GPU Instance관련하여 매번 등록하는 부분이 이상하여 살펴본 결과

저부분이 버튼이었네요....와.. 생각도 못했네... 카테고리인 줄 알았구만...


계속 build시 gpu instance관련 오브젝트가 안 나오는 문제 발생.
shadervariants 설정이 잘못되어서 그런 걸로 추정...
아니었고...scene이 꼬인 상태로 작업이 진행돼서 build시 안 나오는 오브젝트가 발생. 다시 작업.
(물체를 복사하거나 이동시키면서 발생된 문제일 거라 추정)
결론은 아트 쪽 문제는 아니었고, Jenkins에서 svn을 revert 시키질 않아서 생긴 문제였다는...
요즘 들어 svn revert 이슈가 많이 일어나고 있었군요.


vertex paint와 texture mask를 이용한 lerp방식에 대한 고민...
결론... vertex painter가 비교적 덜 무거우니...그걸로..


캐릭터 썸네일 아놀드렌더 렌더링 작업진행.



'업무일지' 카테고리의 다른 글

업무일지<Occulsion>  (0) 2022.09.30
업무일지<Setpass calls>  (0) 2022.09.29
업무일지<왜 빌드시에만 문제가 나올까?>  (0) 2022.09.28
업무일지 <Deferred는 MSAA가 안되죠>  (0) 2022.09.27
업무일지  (0) 2022.09.26

개발에 대한 업무일지겸 경험에 대한 기록을 해보려고 합니다.
얼마나 많은 삽질을 하고 있는지 기록해 봅시다.

'업무일지' 카테고리의 다른 글

업무일지<Occulsion>  (0) 2022.09.30
업무일지<Setpass calls>  (0) 2022.09.29
업무일지<왜 빌드시에만 문제가 나올까?>  (0) 2022.09.28
업무일지 <Deferred는 MSAA가 안되죠>  (0) 2022.09.27
업무일지<svn revert>  (2) 2022.09.26

 

어떠한 이유에서 게임을 빌드했는데, 비정상적으로 셰이더가 나올때 사용하면 좋은 기능입니다.

 

Shader variant collection은  shader가 빌드가 되었을때 정상적으로 보이게 보장되도록 shader를 확정해주는 기능입니다.

유니티 원문에는 이기능은 scene을 로드하기만해도 자동으로 수집되기 때문에 shadervariant 파일이 있기만 해도 된다는 식으로 써있지만, 이기능을 어떻게 사용하는지 명확한 설명이 없어서 저처럼 헤메는 일이 없도록 공유해봅니다.

우선 중요한 것은 하나의 scene에 사용되는 모든 material을 모아야 합니다. 여러 scene을 돌아가면서 로드해도 되는데,

문제는 그렇게 하려면 게임을 실행시켜서 모든 scene을 돌아가면서 열어야 하는 번거로움이 있습니다.

수동으로 shader를 기능에 등록만 하면 되지 않을까 생각하지만, 이 기능은 material에서 실제 사용되는 옵션을 저장하는 방식을 가지고 있기 때문에 작업자가 이 옵션을 일일히 넣는다는건 유니티에 shader에 대해 완전히 파악한 사람이 아니고서는 솔직히 어려움이 있습니다. 또한, 여러 shader를 만들었다면...생각만해도.. 끔찍...

그래서 저는 일단 모든 material을 하나의 Scene에 모으는 툴을 프로그램머분에게 요청하고, 그리고 이를 Shadervaiant로 저장하는 방법을 택하였습니다.
다음 영상은 Shadervaiant을 생성하는 과정입니다. 

(Clear를 누르고 씬을 저장하고 게임실행하고 Save to asset 한번 눌러주고 하면 수치가 일정하게 나오는거 같습니다.

이순서가 중요한거 같네요.)

간혹 숫자가 자꾸 변경이된다면, 이펙트와 같은 렌덤이 있는 오브젝트가 있을수 있으니 이런 부분은 제거하여야 합니다.

 

 

 

 

'Unity > HDRP' 카테고리의 다른 글

HDRP에서 Emssion 사용시 주의점  (0) 2022.06.24
HDRP와 URP의 빛의 차이  (0) 2022.02.10
URP, HDRP 라이트맵(shadowmask) 설정  (0) 2022.01.18
HDRP Quality 셋팅  (0) 2021.10.08
HDRP 초기 셋팅(Project Setting)01  (0) 2021.09.18

Mixamo animation을 max파일로 만드는 과정 영상

 

 

셰이더에 대한 실험을 하려고 HDRP로 Emission 설정을 해보고 있었는데 아무리해도 발광이 제대로 되질 않았습니다.

HDR Color로 설정한다해도 발광이 안되었는데 이유는 수치가 지나치게 낮아서 였습니다.

Standard나 URP의 경우 수치가 작더라도 발광이 바로 나타나는데 HDRP는 Lux 기반이다보니 수치를 많이 높일 필요가 있더군요. 그래서 Float하나를 추가하여 곱해주었더니 해결이 되었습니다. 아래에 보면 수치가 많이 높은걸 볼수 있죠.

'Unity > HDRP' 카테고리의 다른 글

Shader variant collections  (0) 2022.09.02
HDRP와 URP의 빛의 차이  (0) 2022.02.10
URP, HDRP 라이트맵(shadowmask) 설정  (0) 2022.01.18
HDRP Quality 셋팅  (0) 2021.10.08
HDRP 초기 셋팅(Project Setting)01  (0) 2021.09.18
using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class find : MonoBehaviour
{
    // Start is called before the first frame update
    void Start()
    {
        MeshRenderer ms = GetComponent<MeshRenderer>();
        ms.renderingLayerMask = 2;
        ms.renderingLayerMask = 3;
    }

    // Update is called once per frame
    void Update()
    {
        
    }
}

'Unity > C#' 카테고리의 다른 글

LayerChanger  (0) 2021.06.08
물체의 랜덤 스케일  (0) 2021.01.04
캐릭터 랜덤 애니메이션  (0) 2021.01.02
재미로 만들어보는 유니티(콘솔) 로또  (0) 2020.12.29
유리가 깨지는 연출  (0) 2020.12.15

HDRP

HDRP의 Volme에 Exposure를 설정하면 빛의 양에 따라 자연스럽게 밝아지고 어두워지는것을 만들어 낼수 있습니다.

URP

URP에서는 별다른 차도가 없는걸 알수 있습니다.(할려면 하겠지만, 기본적으로 가볍게 개발되는것을 목표로하기 때문이라 생각됩니다.)

'Unity > HDRP' 카테고리의 다른 글

Shader variant collections  (0) 2022.09.02
HDRP에서 Emssion 사용시 주의점  (0) 2022.06.24
URP, HDRP 라이트맵(shadowmask) 설정  (0) 2022.01.18
HDRP Quality 셋팅  (0) 2021.10.08
HDRP 초기 셋팅(Project Setting)01  (0) 2021.09.18

유니티 2020부터인가(?) Prefab을 만드려고 하면 다음과 같은 메세지가 나옵니다.

오리지날로 할지 종속(Variant)으로할지 선택하라는것인데..

종속(Variant)이라는 개념은 오리지날이 있고 오리지날이 바뀌면 종속이 같이 바뀌는 구조로 입니다.

원래 유니티는 오리지날뿐이 없었는데, 좋은 기능이라고 생각합니다.

 

문제는 이게 처음에 FBX를 넣어서 Prefab을 만드려고 하면, 어? 왜 처음부터 오리지날과 베리언트를 선택하라고 하지?

처음은 오리지날 아니야? 라고 생각이 듭니다.

 

그래서 몇가지 실험을 해보았습니다.

유니티 자체에서 박스를 만들고 프리팹으로 만들면 아무런 메세지 박스가 없이 Original이 됩니다.

 

하지만, fbx로 가져온 박스는 아래와 같이 프리팹선택을 해야합니다.

선택장애가 옵니다...


그래서... 테스트를 해보았습니다.

 

우선 이런 녀석을 fbx로 만들었습니다. 그리고 Original과 Variant 프리팹을 만들었습니다.

그리고 원본 fbx를 수정하여 구를 하나 추가하였습니다.

오리지날 프리팹은 구가 추가되지 않았고 종속(Variant)은 추가된것을 확인할수 있었습니다.

원본 FBX의 형태를 변형와 위치를 변형하여 보았습니다.

형태는 오리지날에 반영이 되었지만, 위치와 추가된 오브젝트는 오리지날에 반영이 안된것을 알수 있습니다.

테스트로 알수 있듯이, 처음에 Fbx로 Prefab을 만들때 특별한 사유가 없다면 Variant로 만드는것이 좋습니다.

그래야 종속이되서 원본이 변형되면 같이 변형이 가능합니다.

 

추가 테스트

종속에 종속에 종속...

 

'Unity > ETC' 카테고리의 다른 글

유니티 젠킨스 빌드 실패 원인  (0) 2024.08.28
Baked Lightmaps 문제점  (0) 2022.12.12
Unity LUT  (0) 2021.10.27
Asset Database version2?  (0) 2021.05.27
UTS2 Shader 모바일용과 일반의 차이  (0) 2021.05.25

Shadowmask 관련하여, URP와 HDRP가 설정이 약간 달라 혼란스러워 정리를 해봅니다.

 

Shadowmask의 역할은 그림자를 미리 만들어놓고 실시간 그림자의 부하를 줄이기 위한 방법입니다.

Shadowmask에는  Distance Shadowmask와 그냥 Shadowmask 이렇게 두가지 옵션이 제공됩니다.

 

그냥 Shadowmask는 bake된 라이트맵(그림자)을 그대로 보여주는 설정입니다.

Distance Shadowmask는 거리에 따라 가까운 부분은 실시간 그림자를 설정해주고 뒷부분은 Bake된 그림자를 보여주는 기법이라 아무래도 그냥 Shadowmask보다는 퍼포먼스 영향이 있습니다.

URP

URP에서는 Shadowmask Mode를 퀄리티에서 설정할수 있습니다. 이외에는 설정할것이 따로 없습니다.

 

HDRP

하지만, HDRP는 설정하는 부분이 좀 다릅니다.

퀄리티별 파이프라인에서 Shadowmask를 우선 켜야합니다.(Shadowmask사용시)

이하 퀄리티도 설정해야겠지요.

그리고 Light에서 추가 설정을 해주어야합니다.

이렇게 두군데서 사용을 해줘야 Shadowmask를 제대로 사용할수 있습니다.

 

'Unity > HDRP' 카테고리의 다른 글

Shader variant collections  (0) 2022.09.02
HDRP에서 Emssion 사용시 주의점  (0) 2022.06.24
HDRP와 URP의 빛의 차이  (0) 2022.02.10
HDRP Quality 셋팅  (0) 2021.10.08
HDRP 초기 셋팅(Project Setting)01  (0) 2021.09.18
   packednormal.x *= packednormal.w;

    fixed3 normal;
    normal.xy = packednormal.xy * 2 - 1;
    normal.z = sqrt(1 - saturate(dot(normal.xy, normal.xy)));
    return normal;

Normal Unpack 원리를 알고자 풀어봤습니다.

'Unity > Shader Graph & Amplify' 카테고리의 다른 글

갈라짐 연출하기  (0) 2021.03.18
Shader graph 팁  (0) 2020.12.19
sign값을 이용한 포지션 이동  (0) 2020.11.18
Amplify Shader 주요 기능  (0) 2020.11.04
툰 쉐이더 Amplify shader set  (0) 2020.11.02

URP의 포스트프로세싱을 사용하면서 이것저것(Bloom, Shadows Midtiones...등등)을 만져봐도 뭔가 포토샵처럼 셋팅이 되는 느낌이 아니라는 느낌을 받았습니다.

하여, 예전에 테스트해봤던 LUT를 적용해보기로 하였습니다.

 

포트스트프로세싱에서 Color lookup을 이용하면 사용할수있습니다.

문제는 처음에...Texture가 없어서 어떤걸 기준으로 써야할지 몰라서 헤메었습니다.

Unity 가이드에 보니  [Standard Assets Effects package을 설치하여야합니다.]라고 써있습니다.

 

헌데...여기 아래에 있는거 같습니다...

라고 존재합니다.

 

NeutralLdrLut.png
0.00MB

찾기 귀찮다면 제가 올려둔것을 기본으로 사용하면됩니다.

 

포토샵에서 이렇게 컬러를 바꾸면

이렇게 됩니다.

참고로...

LUT 텍스쳐는 sRGB를 사용하면 안됩니다.

'Unity > ETC' 카테고리의 다른 글

Baked Lightmaps 문제점  (0) 2022.12.12
Prefab에 대해서 정리해봅시다.  (0) 2022.01.18
Asset Database version2?  (0) 2021.05.27
UTS2 Shader 모바일용과 일반의 차이  (0) 2021.05.25
플렛폼별 대표 이미지 압축율 테스트  (0) 2021.05.13

Quality는 High, medium, Low만 있는 것은 아니고 개발에 따라서 단계를 더 많이 나눌 수 있습니다.
그럼...
PC개발의 경우 개인적으로 스팀의 하드웨어 스펙을 기준으로 삼으면 좋지 않을까 싶습니다.
https://store.steampowered.com/hwsurvey/videocard/

Steam Hardware & Software Survey

store.steampowered.com

저는 medium을 현시점 많이 사용되는 GTX 1060을 기준으로 잡았습니다.
Low는 GTX 970 정도로 High는 3060 정도로...

아래는 제가 개발하던 게임을 각각 하드웨어에서 60fps가 나오도록 체크하면서 세팅한 값입니다.
좋은 기준이 되리라 생각됩니다.(게임 따라 다르겠지만, 비슷하지 않을까 생각됩니다.)
보시면 대략적으로 수치를 낮춘 것이 low이며, High는 높게 설정한 겁니다.
각각의 기능에 대한 내용은 유니티 문서를 참고하시기 바랍니다.
(저는 Foward Only로 설정하였습니다만, Raytracing이 효과적인 게임과 많은 수의 실시간 라이팅이 요구되는 게임은 Deferred Only 세팅을 하는 것이 맞으리라 생각됩니다.)

그 어떤 설정보다 라이트에 대한 설정이 가장 퀄리티 셋팅에 영향이 큽니다.

Max shadow resolution을 256 이하로 지나치게 낮추면 오히려 역효과라는 것이 이 부분에서는 중요한 포인트라고 할 수 있습니다.(이유는 모르겠으나 프레임 저하가 더 많이 발생하였습니다.)

포스트 프로세싱 관련된 부분은 수치를 낮출수록 효과적입니다.


Low의 경우 설정만으로 Frame이 나오질 않아서 폴리곤 외에도 카메라의 TAA설정과 포스트 프로세싱 자체를 꺼서 Low에서 원활히 돌아가도록 설정하였습니다.

☆ 추가내용
정확한 원인은 알수는 없었지만 저희게임은 운동장에 디렉션 라이트가 하나만 있는 상황이었는데 gtx 750에서 deferred 가 forward보다 5~10프레임의 이득인 효과를 보았습니다. 원칙적으로 따지면 조명이 하나라서 포워드가 빨라야한다고 생각했지만 디퍼드가 더 효과가 좋았습니다.

'Unity > HDRP' 카테고리의 다른 글

Shader variant collections  (0) 2022.09.02
HDRP에서 Emssion 사용시 주의점  (0) 2022.06.24
HDRP와 URP의 빛의 차이  (0) 2022.02.10
URP, HDRP 라이트맵(shadowmask) 설정  (0) 2022.01.18
HDRP 초기 셋팅(Project Setting)01  (0) 2021.09.18

https://github.com/madumpa/URP_StylizedLitShader

 

GitHub - madumpa/URP_StylizedLitShader: Madumpa's URP Stylized Lit Shader Repository

Madumpa's URP Stylized Lit Shader Repository. Contribute to madumpa/URP_StylizedLitShader development by creating an account on GitHub.

github.com

마둠파님의 스타일라이즈 셰이더가 참 괜찮더군요.

다만, HLSL기반이라 그런지 코드분석에는 어려움이 있었습니다.(아직도 뭐가뭔지...)

그러다가, 작은 부분에 욕심이 생기어서 마스크맵중에 B채널을 emission으로 사용할 방법이 없을까 고민하였습니다.

어차피 마스크맵중에서 RGBA중에서 R은 matellic고, A는 smoothness이고, G는 AO로 사용하는데... B채널을 emission전용으로 쓰면 좋을거 같다는 생각이 들었습니다.

그래서 이러저리 헤메다가 간단하게 코드하나를 추가하여 마무리 하였습니다.

실제 개발에 사용될지는 알수없으나, 사용하게 되면 마둠파님한테 메일을 보내려고 합니다.

//color += emission; // 원본
color += emission.bbb*_EmissionColor.rgb;// B채널을 사용하기위한 추가사항	
return half4(color, alpha);

 

 

 

Shader "URPTraining/TextureAlpha"
{

	Properties{

	_MainTex("Main Texture", 2D) = "white" {}
	_Transparency("Transparency", Range(0,1)) = 0.5

	}

		SubShader
	{
		Tags
	{
		"RenderPipeline" = "UniversalPipeline"
		"RenderType" = "TransparentCutout"
		"Queue" = "Alphatest"
	}
		Pass
	{
		Name "Universal Forward"
		Tags{ "LightMode" = "UniversalForward" }

		Blend SrcAlpha OneMinusSrcAlpha
		Cull Back
		Zwrite off

		HLSLPROGRAM
#pragma prefer_hlslcc gles
#pragma exclude_renderers d3d11_9x

#pragma vertex vert
#pragma fragment frag


#include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/Lighting.hlsl"

#pragma multi_compile _ _MAIN_LIGHT_SHADOWS // sbr batcher

		CBUFFER_START(UnityPerMaterial) // sbr batcher

		float _Transparency;
	float4 _MainTex_ST;
	Texture2D _MainTex;
	SamplerState sampler_MainTex;

	CBUFFER_END // sbr batcher

		struct VertexInput
	{
		float4 vertex : POSITION;
		float2 uv       : TEXCOORD0;
	};

	struct VertexOutput
	{
		float4 vertex  	: SV_POSITION;
		float2 uv      	: TEXCOORD0;
	};

	VertexOutput vert(VertexInput v)
	{
		VertexOutput o;

		o.vertex = TransformObjectToHClip(v.vertex.xyz);
		o.uv = v.uv.xy * _MainTex_ST.xy + _MainTex_ST.zw;

		return o;
	}

	half4 frag(VertexOutput i) : SV_Target
	{
		float4 color = _MainTex.Sample(sampler_MainTex, i.uv);

		color.a *= _Transparency;

		return color;
	}
		ENDHLSL
	}
	}

}