commandline에 -SingleProcess를 추가하면 됨.
관련 변수는 아래의 bShouldOpenAnalysisInSeparateProcess
commandline에 -SingleProcess를 추가하면 됨.
관련 변수는 아래의 bShouldOpenAnalysisInSeparateProcess
문서 공유 합니다.
원문:
http://blogs.unity3d.com/kr/2015/08/27/plans-for-graphics-features-deprecation/
Unity3D 엔진에서 사라질 계획인 Graphics Feature 들
1. “Precompiled Shader”
Shader의 텍스트 소스 코드를 컴파일해서 Temp 폴더에서 얻을 수 있는 텍스트 중간 파일을 앞으로 지원 안할 계획임
장점 : 빌드된 Shader 크기가 몇배로 줄어들고, 로딩 속도도 훨씬 빨라져서 main thread에서 hiccups이 사라짐. 메모리 사용량도 줄어듬.
단점 : precompiled shader를 배포하고, 이것을 사용하는 모든 코드가 동작하지 않게됨
적용 시점 : Unity 5.3 (2015년 12월)
우리 프로젝트 영향 : 그래픽 외주용으로 제작한 버전이 이 기능을 사용하고 있는데, 더 이상 불가능하고 Shader 원본 소스코드로 배포해야 합니다. 또는 완전한 Standalone 프로그램을 만들어서 배포해야 합니다.
2. DirectX 9 Shader Model 2.0 GPUs
더 이상 DirectX9 에서 SM 2.0을 지원 안할 계획임.
SM 3.0을 사용하는 DirectX9은 계속 지원함.
즉 10년 전 이상의 GPU를 지원 안한다고 합니다.
장점 : Unity 내부 구현이 간단해지고, 사용자는 더 이상 DX9 SM 2.0을 고려하지 않아도 됨
단점 : 더 이상 해당 GPU에서 게임이 동작하지 않음
적용 시점 : Unity 5.4 (2016년 3월)
우리 프로젝트 영향 : 아마도 OpenGL ES SM 2.0은 계속 지원되는 것 같은데, 번역을 잘했는지 모르겠네요.
3. Windows Store Apps DX11 feature level 9.1 GPUs
우리 프로젝트 영향 : 해당 사항 없음
4. Android OpenGL ES 2.0에서 “native shadow maps”
GPU에서 지원하는 PCF filtering을 사용하는 “native shadow maps”를 OpenGL ES 2.0에서는 더 이상 지원하지 않고, 무조건 SW로 직접 계산하는 PCF로 처리됨
OpenGL ES 2.0에서는 일부 GPU만 “EXT_shadow_samplers extension”을 지원하고, 일부는 지원 안한다고 합니다. 그래서 Shader를 두가지 variants로 빌드해야 하고, 이 부분 낭비가 많다고 합니다. 사실 EXT_shadow_samplers extension를 지원하는 GPU는 매우 적다고 하네요. 그래서 아예 삭제하는 것이 더 효과적이라고 판단했다고 합니다.
SM 3.0에서는 모든 GPU가 built-in PCF 기능을 갖고 있기 때문에, 이런 문제가 없습니다.
적용 시점 : Unity 5.4 (2016년 3월)
우리 프로젝트 영향 : 그림자 기능을 잘 사용하지 않아서 큰 영향은 없습니다. 혹시라도 그림자를 사용할 계획이라면, SM 3.0에서만 동작하도록 하는 것이 효과적일 것 같습니다.
- 끝 -
Unity5에 또 작은 기능이 추가되었다. 바로 RuntimeInitializeOnLoadMethod 이라는 attribute 이다.
이것은 unity game이 실행 될때, 무조건 실행되는 함수이다.
Editor에서 InitializeOnLoadMethod와 동일한 기능을 하는 기능이다.
다른 점은 RuntimeInitializeOnLoadMethod은 게임 실행시에 처음 실행되는 기능이라는 것이다.
Unity4에서도 계속 이런 기능을 원했건만, 드디어 추가 되었다.
static constructor는 누군가가 이 class를 접근해야만 실행되는 거라서, 실행이 불확실했는데, 이제는 단순히 이 attribute를 사용만 하면 된다.
주의할 점은 RuntimeInitializeOnLoadMethod가 항상 제대로 실행되지는 않는다. Editor에서는 잘 실행되면 메서드가, 모바일 빌드해서 돌리면, 실행되지 않는 경우가 발생한다.
현재까지 경험한 바로는 DLL로 미리 빌드해 넣은 Plugin에 있는 RuntimeInitializeOnLoadMethod는 Editor에서는 실행되고, mobile 빌드에서는 실행되지 않는다.
Unity5에서 editor상 modify notify 얻기 (0) | 2015.09.02 |
---|---|
Shader와 Asset Bundle 문제 (0) | 2015.08.06 |
StreamingAssets 폴더 지정하기 (1) | 2015.07.23 |
Unity 4.6 BakedOnly Light BUG (0) | 2015.07.08 |
Shader의 fixed와 half 를 구별해서 사용하라. (0) | 2015.07.02 |
Unity4에서 부터 계속 editor상에서 무슨 변화가 있으면, noti되는 기능을 찾았지만, 찾지 못했다.
Unity5에서 이게 드디어 지원된다.
아래 delegation 이다.
Undo.postprocessModifications
단 Undo에 등록되는 변화에만 처리되는 것으로 보인다.
참고로 Unity5에서는 매 frame마다 SceneView가 Render된다.
Unity4에서는 변화가 있을 때만 SceneView가 Render되었는데, 이상한 변화이다.
이로 인해서 앞서 말한 기능을 찾아서 사용하게 되었다.
Unity5의 Runtime Initialization 기능 제공 (0) | 2015.09.02 |
---|---|
Shader와 Asset Bundle 문제 (0) | 2015.08.06 |
StreamingAssets 폴더 지정하기 (1) | 2015.07.23 |
Unity 4.6 BakedOnly Light BUG (0) | 2015.07.08 |
Shader의 fixed와 half 를 구별해서 사용하라. (0) | 2015.07.02 |
Shader가 Asset Bundle에 포함되면, 이 Shader는 제대로 표현될까?
Shader는 평상시에 text 형태의 소스코드로 존재해서, windows editor에서는 d3d로 동작하고, 모바일 기기에서는 open gl es나 metal 로 동작된다.
즉 소스코드로 존재할 때는 unity가 알아서 현재 동작되는 플랫폼에 맞는 binary로 빌드해서 처리해 준다.
문제는 shader 를 AssetBundle안에 묶을 때 발생한다.
Shader가 Asset Bundle에 포함되면, 소스코드 형태로 들어가지 않고, 타겟 플랫폼으로 빌드된 형태로 포함되게 된다.
따라서 이 Asset Bundle을 타겟 플랫폼에서 사용하면 잘 동작하지만, 다른 플랫폼에서 사용하면 Shader.isSupported가 false로 나오면서 핑크 또는 검정색으로 뜨게 된다.
이게 당연한 얘기처럼 들릴 수도 있겠지만, Asset Bundle을 개발을 위해서 editor에서 돌릴 때 문제가 된다.
editor에서 android 타겟으로 빌드한 asset bundle을 열어서 사용하게 되면, 타겟 플랫폼은 android이고, 현재 플랫폼은 windows이므로 shader가 지원되지 않는다.
즉 분홍색 또는 검정색으로 나오게 된다.
이런 현상을 처음 겪게 되면, 유니티 버그로 인식하게 되고...... 절망하게 된다.
이를 피할 수 있는 방법은 editor에서만 shader를 Shader.Find()로 한 번 더 찾아서, 연결시켜주면 된다.
오직 editor에서만 이런 처리를 해주면 된다. 타겟 플랫폼에서는 원래 잘 되기 때문이다.
좀 더 편리한 해결 방법이 있을까?
http://www.mingruijiang.com/Shaders-from-asset-bundles-appear-pink-in-editor
Unity5의 Runtime Initialization 기능 제공 (0) | 2015.09.02 |
---|---|
Unity5에서 editor상 modify notify 얻기 (0) | 2015.09.02 |
StreamingAssets 폴더 지정하기 (1) | 2015.07.23 |
Unity 4.6 BakedOnly Light BUG (0) | 2015.07.08 |
Shader의 fixed와 half 를 구별해서 사용하라. (0) | 2015.07.02 |
StreamingAssets 폴더는 Platform마다 다르다.
게다가 더 기가막힌게, Application.streamingAssetsPath를 그대로 믿고 사용할 수 없다는 것이다.
게다가 Unity 문서는 지나간 내용을 설명하고 있으며, 잘못된 내용을 설명하고 있다.
http://docs.unity3d.com/kr/current/Manual/StreamingAssets.html
이런~~~~
정답은 아래와 같다.
#if UNITY_EDITOR || UNITY_STANDALONE_WIN
public static readonly string StreamingPath = "file://" + Application.streamingAssetsPath + "/";
#elif UNITY_ANDROID
public static readonly string StreamingPath = Application.streamingAssetsPath + "/";
#elif UNITY_IOS
public static readonly string StreamingPath = "file://" + Application.streamingAssetsPath + "/";
#endif
Unity5에서 editor상 modify notify 얻기 (0) | 2015.09.02 |
---|---|
Shader와 Asset Bundle 문제 (0) | 2015.08.06 |
Unity 4.6 BakedOnly Light BUG (0) | 2015.07.08 |
Shader의 fixed와 half 를 구별해서 사용하라. (0) | 2015.07.02 |
Varying Color Semantic의 platform 별 차이점 (0) | 2015.07.02 |
http://adolys.tistory.com/category/?page=8
perforce에서 서버에는 없고, 로컬에만 있는 파일 지우기
명령어
p4 clean -a ...