유니티 Universal Render Pipeline V12 이상에서 URP Deferred 랜더링 설정 가능.

 

- https://docs.unity3d.com/Packages/com.unity.render-pipelines.universal@12.1/manual/rendering/deferred-rendering-path.html

 

- Forward / URP Deferred 랜더링간에 카메라 스택킹 처리 부분이 상이한 부분이 존재함.

 > 랜더 타입의 Overlay 타입은 Forward 에서만 지원됨. Deferred 랜더링에서는 스택 처리는 되지만 제한적. 

   * 카메라의 Priority 설정 및 Background 타입 조정이 필요함.

 

- Deferred 의 경우 투명한 이팩트 표시 관련된 문제 해결 방향을 정해야 제대로 사용 할 수 있을듯.

 > 유니티 에디터의 Scene 뷰에서는 제대로 보여도 Game 뷰에서는 제대로 보이지 않음. (디자이너도 숙지하면 좋은 정보)

  * 유니티의 경우 디자이너가 Scene 뷰에서만 작업물을 확인 하는 것은 지양해야 하는가? (경험 적으로는 지양 하는게 좋다고 생각함. 다만 유니티 에디터 내의 설정에 대한 이해를 하고 있다면..)

 

- SRP 도입으로 랜더파이프라인을 커스터마이징 할 수 있게 되었다지만.. (에디터 연동 부분등을 생각하면 그리 효율적이진 않을지도? 아니면 이미 많이들 수정해서 사용하고 있는건가? 흠...)

 

@ Deferred 랜더링을 할 때 투명한 이팩트 표시를 위해서는 기존과 다른 방식으로 출력해야한다고 했던것 같은데.. 

 

Posted by ngcbbs
,

아! 블루스택에서 검은 화면만 나오는 경우 다음 옵션을 꺼주면 ok.. :D

 

Projects Settings -> Playser -> Resolution and Presentation (Android tab) -> Optimized Frame Pacing 옵션을 체크 해제.

 

출처: https://forum.unity.com/threads/black-screen-on-bluestacks.1127396/

Posted by ngcbbs
,


출처 : http://jon-martin.com/?p=114

Posted by ngcbbs
,

프로젝트 로딩시 유니티 에디터가 실행되지 않는경우 다음과 같이 해보자..


1. 유니티 에디터 프로세스 강제 종료. (작업 관리자에서 강제 종료)

2. 해당 프로젝트 하위에 Temp 폴더를 삭제.

3. 해당 프로젝트 하위에 Library/ScriptAssemblies 폴더를 삭제.

4. 프로젝트 로딩 시도.. 문제가 해결되지 않으면 다시 #1로...


* Library 하위 폴더 중 metadata 폴더는 지우지 말자... (프로젝트가 크면 클수록.. 에디터 로딩 시간이 증가함... 1시간이 넘어간 적도 있음 ==;;)

Posted by ngcbbs
,
DevMaster.net 피드를 통해서 알게 된 엔진. 멀티 플랫폼 기반에 BSD 라이센스 적용.
IDE, eC(객체지향 C 정도 된다고 함) eC 는 스크립트가 아니라 네이티브라고 함. IDE, SDK 를 eC 로 개발했고 c 와 링크도 된다고 함. eC sharp 라고 하는것도 언뜻 본것 같긴한데 일단 간략한 소스를 보니 너무 씸플해 보임.
소스를 구할 수 있는곳은 대부분 오픈소스 프로젝트를 호스팅 하는 곳에서는 다 구할 수 있는듯 너무 많음;


국민 예제..
class HelloApp : Application
{
   void Main()
   {
      PrintLn("Hello, World!!");
   }
}


gui 코드도 살짝 살펴보면..
// ecas -- By Joey Adams
import "ecere"
import "expression"

class Form1 : Window
{
   text = "Simple Parser";
   background = activeBorder;
   borderStyle = sizable;
   hasMaximize = true;
   hasMinimize = true;
   hasClose = true;
   size = { 576, 432 };
   anchor = { horz = -3, vert = -4 };

   bool OnCreate(void)
   {
      
      return true;
   }

   bool OnKeyHit(Key key, unichar ch)
   {
      if (ch=='\r')
         DoParse(true);
      
      return true;
   }

   void DoParse(bool simplify) {
      EditBoxStream s;
      CASDictionary dict {};
      Expression expr {};
      Expression exprCopy;
      outputTree.Clear();
      s = {editBox=outputTree};
      if (expr.FromString(inputString.contents, dict)) {
         statusLabel.SetText("Parse successful");
         if (simplify)
            expr.Simplify(dict);
      }
      else
         statusLabel.SetText("Invalid expression");
      expr.DebugPrint(s, dict, 0, null);
      s.Printf("\nCopy:\n");
      exprCopy = expr.Copy(null);
      delete expr;
      exprCopy.DebugPrint(s, dict, 0, null);
      delete s;
      delete dict;
      delete exprCopy;
   }

   Button parseButton
   {
      this, text = "Parse", size = { 75, 30 }, position = { 10, 40 };

      bool NotifyClicked(Button button, int x, int y, Modifiers mods)
      {
         DoParse(false);
         return true;
      }
   };
   Button simplifyButton
   {
      this, text = "Simplify", size = { 75, 30 }, position = { 90, 40 };

      bool NotifyClicked(Button button, int x, int y, Modifiers mods)
      {
         DoParse(true);
         return true;
      }
   };

   bool TypeButton(Button button, int x, int y, Modifiers mods) {
      inputString.Activate();
      inputString.Deselect();
      inputString.AddS(button.text);
      inputString.Update(null);
   }
   Label statusLabel { this, size = { 274, 21 }, position = { 250, 45 } };
   Button ebutton { this, text = constant_string[e], NotifyClicked = TypeButton, size = { 20, 20 }, position = { 170, 45 } };
   Button ibutton { this, text = constant_string[i], NotifyClicked = TypeButton, size = { 20, 20 }, position = { 195, 45 } };
   Button pibutton { this, text = constant_string[pi], NotifyClicked = TypeButton, size = { 20, 20 }, position = { 220, 45 } };
   EditBox outputTree { this, font = { "Courier New", 10 }, size = { 286, 219 }, position = { 10, 80 }, hasHorzScroll = true, true, readOnly = true, true };
   EditBox inputString { this, text = "inputString", size = { 350, 19 }, position = { 10, 10 } };

   void OnResize(int width, int height)
   {
      inputString.size.w = clientSize.w-20;
      //parseButton.position.x = (clientSize.w-parseButton.size.w)/2;
      statusLabel.size.w = clientSize.w-statusLabel.position.x-10;
      outputTree.size.w = clientSize.w-20;
      outputTree.size.h = clientSize.h-outputTree.position.y-10;
   }
}

Form1 form1 {};

일단은 여기까지..   3월 21일 추가 -----
음 간단한 내용을 컴파일해보고 ide 를 돌려본 결과.. 생각만큼의 퀄리티가 나오지 않더라 하는 깨닳음을 얻음. 그리고 ec 포멧을 컴파일 하는 중간 파일이 c 파일이 나와서 그것이 컴파일 되는것으로 보임.

'게임 프로그래밍 > [엔진] 오픈소스' 카테고리의 다른 글

[irrlicht-1.7] 요약...  (0) 2012.03.13
Posted by ngcbbs
,
라이센스 : http://irrlicht.sourceforge.net/license/ 
튜토리얼 : http://irrlicht.sourceforge.net/tutorials/ 

나머지 정리는 다음에... 

'게임 프로그래밍 > [엔진] 오픈소스' 카테고리의 다른 글

[ecere] 요약...  (0) 2012.03.13
Posted by ngcbbs
,