블로그 이미지
Every unexpected event is a path to learning for you.

카테고리

분류 전체보기 (2328)N
Unity3D (572)N
Programming (472)
Unreal (4)
Gamebryo (56)
Tip & Tech (185)
협업 (34)
3DS Max (3)
Game (12)
Utility (116)
Etc (92)
Link (31)
Portfolio (19)
Subject (90)
iOS,OSX (38)
Android (13)
Linux (5)
잉여 프로젝트 (2)
게임이야기 (1)
Memories (19)
Interest (37)
Thinking (36)
한글 (26)
PaperCraft (5)
Animation (408)
Wallpaper (2)
재테크 (19)
Exercise (3)
나만의 맛집 (2)
냥이 (9)
육아 (9)
Total1,346,229
Today35
Yesterday132
Statistics Graph

달력

« » 2019.12
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        

공지사항

태그목록

Latest Update 5/01/09
New Shader, codenamed 'Bleach' (for reasons I'll explain in a moment):
- Improved Vertex Color and Alpha support
- Tweaked the glow system to reduce blown-out glowing
- Added Light Attenuation (not yet linked to the lights' actual attenuation settings, but very good for moody lighting)
- Added Fresnel Highlights
- Added some simple subsurface scattering (nice alliteration, eh?)
- Added 'glowthru' subsurface scattering
- Half-Lambert is now tied to the alpha channel of the SSS map for added control
- Added a "Bleach Bypass" filter. Hence the shaders name. This is by no
means the marquee feature, its just a nifty little addition.

This shader is still a bit raw I feel, so I wanted to get it into your hands and see if you folks can exploit it to the point of breaking. So test the heck out of this and give me some feedback. With DomWar going on, I'm sure you all have nearly-complete characters to use as guinea pigs. 

Shader_Donze_Bleach_Beta.fx
Shader_Donze_Bleach_NoShad.fx




Important Info Concerning All Shaders
Any of the reflective shaders require DDS format cube maps for the environment. Since alot of folks don't know what a cube map or DDS is (or how to make them), here are a few samples that you can use:
Desert Scene
City Scene
Blurred version of Desert Scene (Good for brushed metal look)

I would like to encourage any of you to post images of work you've created with these shaders. Particularly when I start posting some of my more advanced shaders, I'd be very interested to see how you can get the most out of them. Hope you enjoy them!

Each shader has a 'No-Shadows' counterpart. Versions of Max prior to 2008 don't support shadows, so you'll need the no shadow version if you have Max9 or something.




NEW! COMPLETE SHADER - (requires Pixel Shader 3.0)
LAST UPDATED 4/13/09 - Version 1.1 Improved glow and added Vertex Color support
Shader_Donze_Complete.fx
Shader_Donze_Comp_NoShadows.fx




STANDARD SHADER
LAST UPDATED 1/30/09 - 4 lights and proper opacity support.
Shader_Donze_Std.fx
Shader_Donze_Std_NoShadows.fx




GLOW SHADER - (requires Pixel Shader 3.0 support for now)
LAST UPDATED 1/30/09 - 4 lights and proper opacity support.
Shader_Donze_Glow.fx
Shader_Donze_Glow_NoShadows.fx
Note: Still has one odd little bug, but I've not been able to fix it yet. Most people will never notice it anyway.




ENVIRONMENT SHADER - (requires Pixel Shader 3.0)
LAST UPDATED 1/30/09 - 4 lights and proper opacity support plus Fresnel reflectivity.
Shader_Donze_Env.fx
Shader_Donze_Env_NoShadows.fx




SKIN SHADER - (requires Pixel Shader 3.0)
LAST UPDATED 12/5/08 - first pass at skin.
Shader_Donze_Skin.fx
Shader_Donze_Skin_NoShadows.fx
Note: The skin shader has a lot of advanced features. For an explanation of them go HERE.




GLASS SHADER - (requires Pixel Shader 3.0)
LAST UPDATED 12/14/08 - first pass at glass.
Shader_Donze_Glass.fx
Shader_Donze_Glass_NoShadows.fx




TOON SHADER - (requires Pixel Shader 3.0)
LAST UPDATED 11/30/08 - first pass at toon shading.
Shader_Donze_Toon.fx
Shader_Donze_Toon_NoShadows.fx
Note: The outline part of the code is a bit shaky right now so the 'Line Thickness' setting is currently inactive.[/url]

Here's a quick explanation of the basic features available in all of my shaders. First, for those of you that have no idea how to even get a shader onto a model, here's a quick tut:

Bring up your Material Editor. Choose a material that you would like to be a DX Shader. Now in the top right there is a button that probably says "Standard" (circled in red here). Click that and you'll be presented with the menu pictured on the left. Choose "DirectX Shader" from that menu.




Voila, your material is now a shader. Now, to make it a specific shader (like the one you just downloaded from this thread) click on the big button at the top, circled here in red.



This is a path to an .fx file. So, find the one you like and select it. There are actually a bunch that ship with Max, but they are mostly for demonstraion and not all that useful.


So, once you've loaded my shader, your Material Editor will turn into this:


Now, let me explain what all of this means (most of it is pretty self-explanatory)
First, lets actually start at the bottom. The Material slot can pretty much be ignored. But, if you have an insatiable thirst for knowledge, this is a separate material that Max will use to display your model if you disable DirectX or if you try to render the scene (DirectX shaders don't render, but they really don't need to)

More importantly, at the bottom is also an option for "Technique." You have 2 options here, SingleLight and DualLight. This will tell the shader how many lights to use to light your model.

Now, back at the top, you'll see there are slots where you can specify lights and shadow casters. These, obviously, are where you specify what lights to use. If you have the Technique set to Single Light, then only "Light Position 1" and "shadowCaster1" will matter. Generally you will want the Light Position to match its cooresponding shadowCaster.

Below the lights, there is a slew of map options. First are the Diffuse Map options. This will set the color of the model. There is a "Diffuse Map" and a "Diffuse Color." If you check the box that says "Enable Diff Map" then the shader will use the Map you have selected in the Diffuse Map slot. If you uncheck "Enable Diff Map" then the shader will just use the color that you've selected in the Diffuse Color slot.

The same applies for the Specular Map. The spec map however, also has a few extra options for Glossiness. This shader is set up so that the alpha channel of the Spec Map can be used to control glossiness. If you do not want that option, you can just uncheck the box and use the spinner to control glossiness.

Next is the Normal Map. The only tricky thing here is the "Invert Green Channel" option. Basically, Max uses a somewhat oddball coordinate system. Because of this, your normal map's Green Channel needs to be inverted depending on how you generated your normal maps. So, if you select a normal map and it looks a little weird, try using this option.

You can also turn on "Half-Lambert" lighting. This is a little trick developed by Valve a long time ago. It basically softens the lighting, giving a more appealing but less-accurate look.



[출처] MAX Shader - DirectX Buzzy's Shaders|작성자 온새미로

Posted by blueasa

댓글을 달아 주세요

겜브리오 2.6을 설치한 뒤 2.6.0.3의 패치(UpdateArtistTools.bat)를 하고 나서 맥스실행시 에러가 나는 경우가 있다.



이런 경우 패치업데이트될 때 맥스환경변수가 제대로 설정되지 않아 GamebryoMaxPlugin.dlu가 복사되지 않은 경우이다. 

해결법은 두가지가 있는데, 첫번째 방법으로는 겜브리오의 패치내용디렉토리에 있는 맥스플러그인을 직접복사해주는 방법이다.

3dmax가 2008이라면 다음디렉토리에서 GamebryoMaxPlugin.dlu를 맥스디렉토리로 복사해주면 된다. 
겜브리오의 패치내용디렉토리\ToolLibs\ArtPlugins\MaxPlugin\Win32\VC80\Shipping_Max2008

두번째 방법으로는 제어판의 시스템에서 환경변수를 지정하는 것이다.



환경변수에서 시스템변수를 보면 3dmax 2009의 환경변수가 잘못되어 있다. UpdateArtistTools.bat의 내용을 보면 

3dmax 9은 MAXINSTALLPATH90
3dmax 2008은 MAXINSTALLPATH2008
3dmax 2009은 MAXINSTALLPATH2009
3dmax 2010은 MAXINSTALLPATH2010

로 되어 있다.



그러므로 인스톨되어 있는 맥스버전별로 환경변수를 새로만들기로 만들어넣거나 수정해야 한다.



출처 : http://stnzone.com/gboard/blog/?id=1437


Posted by blueasa

댓글을 달아 주세요



출처 : stnzone.com/gboard/blog/download.php?mb_id=neojzs&id=1135
Posted by blueasa

댓글을 달아 주세요


추출할때 Dummy사 사라지지 않더록

에서 NiOptimizeKeep 선언한다.

그리고 추출후 어썰트 뷰로 재대로 되어있는지확인하자.

NiNode * pbackNode = (NiNode*)m_BackGraund->GetObjectByName("Dummy01");

Posted by blueasa

댓글을 달아 주세요

http://search.naver.com/search.naver?ie=UTF-8&query=%EB%A7%A5%EC%8A%A4%EC%97%90%EC%84%9C+%EB%8D%94%EB%AF%B8%EB%85%B8%EB%93%9C+%EC%9D%B5%EC%8A%A4%ED%8F%AC%ED%8A%B8+%EC%8B%9C+NiOptimizeKeep
위 링크로 가셔서 카페 카테고리에서 [맥스에서 더미노드 익스포트 시 NiOptimizeKeep]을 찾아서 클릭하세요.
카페라서 바로 링크로 못가네요..

충돌을 위해 긴 시간동안 맥스와 씨름하고 있는(뭔가 아이러니..) 중에

오늘 빛과 같은 발견을 해서(나한테만이야 -_-)

알려주기 위하여 글쓰기를 눌렀어

 

 

주제 : 맥스 작업 후 익스포트 시 노드 생성 관련

스샷과 함께 설명해 주겠어

 

 

1. 아래와 같은 구조로 되어있는(ST-Soldier는 모델링과 스킨들이 하나로) 맥스파일을 익스포트 해서 nif파일을 뷰어로 보면,

 

 

 

2. 아래와 같은 구조로 노드가 구성되어 있어. 빨간줄 쳐논걸 잘봐

 

 

3. 그래서 우리 더미로 같은 구조로 해보면,

 

 

4. 아래처럼 모델링들의 메쉬들이 노드 없이 되버려. 이러면 안돼

 

 

5. 내가 대충 만들어본 우리 게임의 맵 더미를 아래와 같이 구성해놓고 뷰어로 돌려봐도,

 

 

6. 컬리젼 부분만 노드가 생겨있고 스타트 지점이나 오브젝트들은 노드없이 되버리지. 역시 이러면 안되는거야

 

 

7. 해결방법은 바로 아래와 같은거야. 오브젝트 프로퍼티 들어가서 유저 디파인드에다가 "NiOptimizeKeep" 이라고 적어줘야해

   (아니면 적용할 것들을 선택해놓고 왼쪽 브리오 툴바에서 KEEP이라고 되어있는걸 켜서 체크하는거 하나 있는데 체크하고

    Apply to Selection을 한번 눌러주면 돼)

 

 

8. 캔츄씨?

 

 

9. 아하? 알겠지?

 

 

 

 

이거 꼭 해줘야 하니까 맥스 만지는 사람들은 꼭 참고해서 작업시에 적용을 해줘 나중에 대량 수정작업 안하게 ㅋㅋ

그럼 난 이만 퇴근~

Posted by blueasa

댓글을 달아 주세요

더미,포인트등은 그냥 export되지 않는다.

 

3d Max

 

helpers의 object type에서 dummy, point등등 을 선택 우클릭

object properties 에서 User Defined -> User Defined Properties 여기에

NiOptimizeKeep <- 이걸 써넣으면 NiNode로 뽑힌다.

 

Customize User Interface에 Gamebryo Tools내에

 NiOptimization Helper를 사용 할 수도 있다.

Do Not Optimize This check

Apply to Selection click <- 이건 선택한 것만

or Select Matching Objects click <- 이건 전부?

 

NiOptimizeKeep이 추가 되지 않으면

Scene Root(NiNode)에 메쉬들은 NiMesh로 뽑힌다.

메쉬들을 NiNode로 뽑을려면 추가해줘야한다.


 
[출처] 3dMax의 Helpers-Object Type를 NiNode로 Export 하기|작성자 cry

Posted by blueasa

댓글을 달아 주세요

 

1. Convert

 - Cameras , Lights : 씬의 카메라 및 라이트를 익스포트 할 경우 이 옵션에 체크를 합니다.(보통 체크안함)

 

2. Textures Options Sub-panel

 - Include in main NIF :  메인 NIF포멧에 포함시켜서 익스포트 할 때 체크 합니다.

   이 옵션을 사용 하면 마스터 NIF파일은 완벽한 하나의 자가 공급 패키지가 됩니다. 모든 데이타가 하나의 포멧 파일로 합쳐지기

   때문에 별도의 텍스처가 필요 없으며, 마스터 NIF파일 안의 텍스처는 공유됩니다.

   자세한 사항은 게임브리오 헬프 파일을 참고 하시기 바랍니다.

 

 - Save as separate NIFs : 텍스처 파일을 별개의 NIF로 익스포트 할 시 체크를 합니다.

   이 옵션은 마스터 NIF가 제대로 로드되기 위해서 다른 NIF파일에 의존하게 만듭니다. 즉, 별개의 텍스처 NIF파일이 있어야

   마스터 NIF 파일이 제대로 로드 된다는 것입니다.

   씬의 각 고유한 텍스처는 자체적인 NIF파일에 저장되며, 별개로 익스포트 되어진 텍스처 NIF파일들은 여러 마스터

   NIF 파일들 간에 공유 할 수 있습니다.

   이 옵션은 부수적인 NIF텍스처 파일을 찾는 검색 시간으로 인해 콘솔에서 로딩하기에는 메인 NIF 텍스처보다 느릴 수 있습니다

    

 - Original images : 텍스처를 원래의 이미지로 익스포트 할 시 체크합니다.

   이 옵션은 마스터 NIF가 제대로 로드되는데 원본 이미지 파일에 의존하게 만듭니다.

   각각의 고유한 이미지 파일은 텍스처가 공유되는 위치에 복사해야 하며, 이 작업은 max에서 제공하는 Resource Collector

   유틸리티를 통해 쉽게 처리할 수 있습니다. 그러나 지원되는 게임브리오 이미지 타입만 공유될 수 있으며, 지원되지 않는

   타입은 NIF텍스처로 익스포트 될 것입니다.

   이 방식의 또 다른 이점은 익스포트 후에도 이미지를 수정 할 수 있다는 점입니다.

 

   이 옵션의 부수적인 NIF 텍스처 파일을 찾는 검색 시간으로 인해 콘솔에서 로딩하기에는 메인 NIF 텍스처 옵션보다 느릴 수

   있습니다. 또한 랜더러가 이 이미지를 쓸 수 있으려면 중간 픽셀부터 만들어야 한다는 사실로 인해 메모리를 조각 낼 수도

   있습니다.

 

 - Original images VRAM : 이 옵션은 위에 나온 Original images와 같으나 게임브리오 중간표현 없이 곧바로 렌더러

   데이터에 로드되기 때문에 게임브리오에서 직접 지원하지 않는 이미지 형식을 사용 할 수 있으며 로드시간도 빨라지게 됩니다.

 

 - Allow NPOT Tectures : 이 옵션을 체크하면 2의 제곱이 아닌 텍스처를 크기조정 없이 익스포트 할 수 있습니다.

   2의 제곱이 아닌 텍스처는 갖가지 그래픽 카드에서 서로 다른 성능을 보이며 퍼포먼스에 나쁜 영향을 끼칠 수가 있으므로

   보통 2의 제곱 텍스처를 사용하지 않는게 좋습니다.

 

   이 옵션을 체크하지 않으면 기본적으로 익스포트가 2의 제곱이 아닌 텍스처를 발견 햇을 경우 그 텍스처의 크기는 2의 제곱에

   가장 가까운 면적으로 줄어들고 경고 메세지가 나오게 됩니다.

   이 옵션을 체크하면 익스포트가 발견된 2의 제곱이 아닌 모든 첵스처는 필러링모드가 pyramidal로 설정되어 있을지라도

   Mipmap 지원이 없는 상태로 익스포트 됩니다.

 

 

 

 

 

1. Use App Time

  - 애니메이션은 APP_TIME 애니메이션 타입을 사용하게 되고, 체크하지 않으면 APP_INIT를 사용하게 됩니다.

 프로그래머가 APP_INIT를 사용해서 익스포트 해달라고 하지 않는 이상 기본적으로 체크를 해 놓습니다.

 

2. Use existing Biped keyframes instead of sampled keyframes

  - Character Studio는 바이패드 애니메이션에 TCB key를 사용하지만 불행이도 TCB파라미터 중 어느적도 익스포트 하지

  못합니다.  이 때문에 Gamebryo 3ds max Plug-in은 키프레임을 Bezier key로 익스포트 합니다.

  이 옵션을 체크하지 않으면 Gamebryo 3ds max Plug-in은 바이페트 애니메이션을 bone 별로 프레임 당 키 한개의 속도로

  샘플링 할 것 입니다.

  남아도는 키프레임은 삭제되지만 이 프로세스는 수많은 키프레임을 생성 할 수 있기에 일반적으로 컨버전 성능이

  떨어지지 않는 이상 이 옵션을 사용 하는 것이 효과적입니다. 단, 애니메이션 컨버전 성능이 떨어질 경우에는 이 옵션을

  체크하지 말아야 하며 보통 이 옵션을 체크하면 걸음걸이 동작은 비정상적으로 나오나 자유 형식 동장은 정상적으로 나옵니다.

 

3. Skin Weight Threshold %"수치"

  - 스킨에 버텍스 당 이 "수치"%보다 적은 영향을 미치는 본의 가중치는 버려집니다.

   이 기술은 스키닝 파티션의 갯수가 최적에 못 미치는 경우 유용하게 쓰이는데 이런 경우 퍼포먼스를 현저히 개선시킬 수

   있습니다.

   물론, 최종 스킨의 정확도가 떨어질 수는 있지만 대부분의 경우 5% 미만의 가중치는 최종 애니메이션에 거의 기여하지

   못하기에 보통은 5%에서 시작됩니다. 

 

 

 

 

 

1. Process Script

  - 옆에 있는 드롭다운 리스트를 열면 알려진 모든 Process Script 가 나옵니다.

  Process Script 는 씬 그래프를 어떤 방식으로 조작할 지를 정하는 플러그을 설정하는 것이므로 프로그래머와 상의 후

 필요한 플러그인만을 적용 시킵니다.

 예를 들어 겜브리오 엔진은 물리엔진으로서는 점수가 높지 않기 때문에 물리충돌은 다른 엔진으로 대체하는 경우가 있습니다.

 해당 플러그인의 설정 수정이나 새로운 설정을 만들기 위해선 오른쪽의 Edit 버튼을 눌러 편집을 합니다.(밑에 설명)

 

2. File Export Script

  - 이 드롭다운 리스트를 열면 알려지 모든 export script를 보여집니다.

  자세한 사항은 겜브리오 헬프 파일을 참조.

 

3. Use original script template if available

  - Max 파일을 로드했을 때 이 파일의 내부 스크립트 사본이 원래의 템플릿과 동기화 되지 않았을 경우 이 옵션을 체크하면

  맥스파일에 저장된 임시 버전 대신에 원래의 템플릿 스크립트가 사용됩니다.

 

 

 

 

 

1. Platform

  - 드롭 다운 리스트를 열면 익스포트 할 타깃 플랫폼을 선택 할 수 있습니다.

  해당 타깃 플랫폼을 선택하면 이미지와 데이터의 특정 최적화와 관련하여 스크립트 동작이 바뀔 수 있습니다.

  'Generic' 'Xbox 360' 'Platstation3' 'DX9' 가 있습니다.

  프로그래머와 상의합니다.

 

2. Image file subdirectory

  - 텍스처를 외부 NIF로 익스포트 할 때 활성화 되는 옵션으로 외부 NIF로 저장되어지는 서브 디렉터리를 선택하거나

  다른 이름으로 저장되어지게 합니다.(쉽게 말해 텍스처NIF가 저장되어지는 폴더의 이름을 적는 곳)

 

3. Default content quality

  - 외부 텍스처 NIF나 내부 텍스처로 익스포트 할 때 텍스처의 디폴트 퀄리티를 설정 할 수 있습니다.

  별개의 설정을 하지 않은 모든 텍스처를 최종적으로 'Defaults~Palettized'로 만드는 것이며,

  다른포멧파일(예:DXT5)로 익스포트 해야 한다면 메터리얼 텍스처탭에서 따로 설정을 해야 합니다.

 

4. Override Per-Texture Settings

  - default content quality 옵션을 사용 할 때는 Gamebryo Shder에서 텍스처 포맷 타입에 대해 설정된 옵션들이

  default로 Override 되지 않습니다.

  따라서 이런 설정을 Override 하고 싶은 경우엔 이 옵션에 체크해야 합니다.

 

  즉, DXT5(DDS포멧)으로 설정되어 있는 별개의 텍스처에 최종 익스포트 시 Default content quality에서 DXT1로 설정을

  하여 익스포트 할 때 체크를 해제하면 개별적으로 설정되어있는 DXT5포멧으로 익스포트 되게 되며,

  체크를 하면 최종설정인 Default content quality에서 DXT1포멧으로 익스포트 됩니다.

 

  특정 조건이 아닌 이상 체크를 하지 않는 것이 좋습니다.

  대부분은 DDS포멧의 DXT1으로 포멧을 하지만(용량이 적다) 알파값이 있으면 DDS포멧의 DXT3 ~ DXT5포멧으로 하는게

  좋습니다. 또한, 특정 노멀맵의 경우는 DDS포멧인 DXT5로 설정해야 하는 경우도 있습니다.

 

 

 

 

 

☞ Process Script Edit 버튼을 클릭하면 나오는 창.

 

 

 

 

 

1. Current Script

  - 현재 설정되어 있는 모든 스크립트가 나옵니다. 이 리스트 중에 선택된 항목은 다이얼로그의 나머지 부분에 있어

  현 스크립트가 무엇인지 결정하게 됩니다. 각 템플릿 스크립트는 괄호 안에 그 스크립트가 로드된 소스 파일을 보여줍니다.

  스크립트에서 괄호 다음에 '*'표시가 나온다면 유저가 세션에서 그 스크립트를 변경했음을 의미합니다.

 

2. New

  - 새로운 스크립트를 생성합니다.

 

3. Save

  - 현재 선택된 스크립트를 저장합니다.

 

4. Clone

  - 기존의 스크립트를 바탕으로 새로운 스크립트를 생성합니다.

  어떤 스크립트를 복제 할지 , 어떤 이름을 사용할지를 묻는 창이 나옵니다.

 

5. Rename

  - 스크립트의 이름을 변경합니다.

 

6. Script Type

  - 스크립트의 타입을 보여줍니다.

 

 

 

 

 

1. Known Plugins

  - 알려진 모든 플러그인을 보여줍니다.

 

2. Plugin List for Current Script

  - 현 스크립트에 적용되어 있는 플러그인을 보여줍니다.

  플러그인에 나열되는 순서는 이들이 실행되는 순서이며, 리스트에 있는 플러그인을 여러개 복사할 수 있고,

  각 복사본마다 서로 다른 파라미터를 지정할 수 있습니다.

 

3. Add Plugin

  - 선택된 플러그인의 새로운 인트턴스를 현 스크립트에 추가힙니다.

 

4. Remove Plugin

  - Plug-in List For Current Script 에 선택되어 있는 플러그인을 삭제합니다.

 

5. See Description

  - Plug-in List For Current Script 에 선택되어 있는 플러그인에 대한 설명서를 불러냅니다.

 

6. Edit Plugin

  - Plug-in List For Current Script 에 선택되어 있는 플러그인에 대한 편집창을 불러냅니다.

 

7. Move Up

  - Plug-in List For Current Script 에 선택되어 있는 플러그인을 한단계 위로 올립니다.

 

8. Move Down

  - Plug-in List For Current Script 에 선택되어 있는 플러그인을 한단계 아래로 내립니다.

 

 

 

 

◈  플러그인 설명

 - 해당 플러그인을 더블 클릭하거나 Edit Plugin 을 클릭하면 플러그인의 옵션창이 불러와집니다. 

 

[ Scene Graph Optimization ]

 - 메모리 오버헤드와 트래버스 시간을 줄이기 위해 Scene Graph를 Optimization(최적화)합니다.

  이 플러그인에서 최적화 할 수 있는 옵션은 매우 많으며, 스킨 파티션과 NiBoneLODController가 올바르게

  생성되려면 이 플러그인을 반드시 실행 시켜야 합니다. 

 

 

1. Remove duplicate properties

  - Scene(씬)에서 중복되는 모든 속성을 공유하게 됩니다. 기본적으로 체크되어야 하는 옵션입니다.

 

2. Remove bad NiTexturing properties

  - 씬에서 이미지 데이터가 없는 NiTecturingProperty 속성과 존재하지 않는 텍스처 좌표를 사용하는 NiTecturingProperty속성을

   제거합니다.

   3ds max와 gamebryo 3ds max Plug-in간에 발생 할 수 있는 몇몇의 필요없는 상황을 정리 하므로 기본적으로 체크되어야

   하는 옵션입니다.

 

3. Remove multi-material nodes

  - 씬에서 multi-material 노드를 모두 지웁니다. 이들은 대개 필요 없으므로 지워도 됩니다.

 

4. Remove childless nodes

  - 씬에서 자식이 없는 노드를 모두 삭제합니다.

  gamebryo는 씬그래프의 말단(leaf)노드만 렌더링 합니다. NiNode에는 가시적 지오메트리가 없으며 그에 따라 렌더링과도

  관련이 없습니다 따라서 어플리케이션이 특별히 나중에 사용할 목적으로 보관해두지 않는 한 자식이 없는 노드는 전혀

  쓸모가 없습니다. 이 함수는 오브젝트의 오버헤드를 줄이기 위해 씬에서 자식도 없고 쓰이지도 않는 모든 NiNode를 지웁니다.

  단, 노드를 그대로 두고 싶다면 반드시 3ds max 유저 지성속성(User Difined)에 "NiOptimizeKeep"라는 태그를 달아놓아야

  합니다.(대소문자 틀리면 적용 안됨)

 

5. Remove single-child nodes

  - 씬에서 자식을 하나만 두고 있는 노드의 속성과 변환과 이름을 그 자식에게 전달하고 이 노드는 삭제해버립니다.

  자식에 "NiOptimizeKeep" 태그가 달려있는 경우엔 이름이 전달되지 않습니다.

 

6. Merge sibling nodes

  - 씬의 형제 노드를 통합합니다. '두 노드가 정확히 NiNode 타입의 형제 노드이며, 이 두 노드에 NiNode 타입의 부모가 있으며

  똑같은 속성과 똑같은 visibility flag가 어태치 되어 있다' 라는 조건이 맞으면 이 두 노드는 통합 됩니다.

  두 노드가 합쳐질 수 있고 서로 다른 변환을 지니면, 두 노드의 변환은 이들이 합쳐지기 전에 자식들에게 물려집니다.

 

7. Merge sibling NiTrishape objects

  - 씬의 모든 형제 NiTriShape 객체를 통합합니다.

  ' 두 NiTriShape 객체에게 정확히 NiNode 타입인 공통의 부모가 있고 보유한 속성의 수가 같으며, 속성 포인터가 같고

  텍스처 세트 수도 같다. 또한 타임 컨트롤러가 어태치 되어 있지 않고, NiTGeometryData 포인터가 서로 다르며 AppCulled

  플래그 값이 같다. 두 NiTriShape 모두 버텍스, 노멀, 텍스처, 컬러를 갖거나 갖지 않는다 '

  라는 조건이 맞으면 이 두 NiTriShape을 합칠 수 있습니다.

  두 NiTriShape 중 어느 하나에라도 별도의 데이터가 어태치 되어 있으면 이 둘은 통합되지 않을 것입니다.

 

8. Do not merge alpha-blended NiTriShape objects

  - 이 옵션을 체크하면 알파 블렌딩이나 sorter가 작동될 경우 NiAlphaProperty가 어태치된 노드들 사이에선 통합이 일어나지

  않습니다.

 

9. Optimize NiTriShape objects

  - degenerate triangle을 삭제하고 씬에 있는 모든 NitriShape의 버텍스를 축약시키는데, 이 객체들의 삼각형이 모두

  degenerate되어 있는 경우라면 그 객체들을 지워버립니다.

 

10. Remove extra texture coordinate sets

  - 씬의 지오메트리에서 현재의 노드나 상위 노드에 어태치된 NiTexturingProperty가 사용하지 않는 모든 텍스처 좌표 세트를

  삭제합니다.

 

11. Remove unnecessary normals

  - 필요없는 노멀을 재귀적으로 삭제합니다. 라이트가 없는 씬에서는 노멀을 삭제하지 않습니다.

 

12. Remove unnecessary NiVisControllers

  - 씬에서 NiVisController의 키들이 모두 같은 visibility data를 가지고 있으면 그런 NiVisController를 모두 삭제하고

  타깃의 visibility flag를 업데이트 합니다.

 

13. Remove unnecessary NiLookAtControllers

  - NiLookAtController의 타깃이나 "Look At"에, 또는 씬 그래프에서 이들 위에 NiKeyframeController가 없으면 씬에서

  NiLookAtController를 삭제합니다.

 

14. Remove hidden bone geometry

  - 한 본의 자식이면서 AppCulled 플래그인 true인 NiGeometry를 씬에서 삭제합니다.

 

○ 게임을 실행 시키기 위해 노드가 필요한 경우에는 'Remove childless nodes' 'Remove single-child nodes'

  'Merge sibling nodes' 'Merge sibling NiTrishape objects' 의 체크를 해제합니다.

 

 

 

 

 

1. Reduce animation keys

  - 씬에서 NiKeyframeController의 중복된 애니메이션 키를 줄입니다.]

 

  "Tolerance"설정은 키가 여전히 중복되는 것으로 여겨지려면 이 키가 키의 양쪽에서 이루어지는 두 키 사이의 보간에서부터

  얼마나 멀리까지 있어도 되는지의 비율을 지정하는 곳입니다.

 

2. Remove unnecessary extra data

  - ectra data string이 비어있거나, 이 문자열에 임시적인 컨버전 목적으로 쓰이는 문자열만 들어 있는 경우 이를 삭제합니다.

 

  Remove "NiOptimizeKeep"tags 옵션을 체크하면 문자열 "NiOptimizeKeep"와 "sgokeep"이 들어있는 extra data객체도

  삭제됩니다.

 

 

 

 

 

1. Sory children of each node by NiTexturingProperty

  - 각 노드의 자식을 속성 상태에 나와 있는 NiTexturingProperty의 어드레스에 따라 Sorting(소팅)합니다.

  속성 상태에 NiTexturingProperty 객체가 없는 자식들이 먼저 Sorting 됩니다.

  - 이 함수는 렌더링의 능률을 높이는 데에 다소 도움이 됩니다. 그러나 씬 그래프 구조를 유지해야 하는 제약으로 인해

  최적화 될 수 있는 방식도 제한됩니다.

 

2. Remove all Object Names

  - 씬의 모든 오브젝트와 메터리얼 속성에서 이름 문자열을 삭제합니다.

  - 이 함수는 어플리케이션이 이름을 필요로 하지 않는 경우를 위해 제공됩니다. 이름을 삭제하면 메모리 오버헤드를 조금

  줄일 수 있으나 같은 오브젝트의 이름이 있어야만 하는 클래스에선 문제를 일으킬 수 있으므로 이름이 필요없다고 확신되는

  경우에만 이름을 삭제 하기 바랍니다.

 

3. Name all unnamed objects

  - 씬에서 이름이 없는 오브젝트에 고유한 이름을 달아줍니다.

  - 오브젝트들이 이름 없이 익스토프 되지 않게 해줍니다. 즉, 모든 오브텍트에 이름이 있어야 하는 경우에 사용합니다.

 

4. Skin and Bones Support

  - 이 옵션은 각 플랫폼에 대해 어떤 타입의 스키닝 정보를 익스포트 할지를 지정합니다.

  하드웨어(Hardware) 스키닝 정보를 익스포트할지 , 소프트웨어(Software) 스키닝 정보를 익스포트 할지 , 또는 둘다(Both)

  익스포트할지를 고를 수 있습니다.

  - 하드웨어 스키닝 정보만으로 익스포트 된 데이터세트는 하드웨어 스키닝을 지원하지 않는 그래픽 하드웨어에선 실행되지

  않을 것입니다.

  하드웨어와 소프트웨어 스키닝 정보 모두를 가지고 익스포트 된 데이터 세트는 실행될 때 하드웨어 가속 상태

  (hardware accelerated)가 되나 하드웨어 스키닝을 지원하지 않는 그래픽 하드웨어에서도 여전히 구동될 수 있습니다.

  - 스킨 파티션 당 bone의 갯수도 지정 할 수 있습니다.

 

5. Weld hardware skin partitions

  - 스키닝된 모델에서 crack(균열)을 없앱니다.

  - 하드웨어 가속 스키닝을 사용할 때 활성적일 수 있는 본의 개수가 제한되어 있기 때문에 하드웨어 가속 스키닝에 쓰이는

  데이터 구조를 만들 땐 본과 버텍스 간의 상호작용을 무시해야 할 수 밖에 없게 됩니다.

  이렇게 되면 만일 한 본의 영향이 어떤 삼각형에서는 무시되나 다른 오브젝트의 인접한 삼각형에서는 무시되지 않을 경우

  서로 다른 게임브리오 오브젝트의 삼각형들이 공유하는 가장자리에 크랙(균열)이 생길 수 있는데  welding code는 이런 균열이

  생긴 가장자리를 찾아내서 제거합니다.

  이 welding이 일어나려면 두 오브젝트의 월드 변환이 동일해야 합니다.

 

 

◈ 이외에 여러가지 플러그인이 존재하며, 필요한 부분만 체크해서 적용시키는게 좋습니다.

Posted by blueasa
TAG export, MAX, NIF

댓글을 달아 주세요

옵션 재정리 작업중. 

convert : 카메라와 라이트를 익스포트 시킬 것인가 결정. 
체크를 꺼 놔도 3개의 라이트는 기본적으로 넘어가는데, 나머지는 프로그래머 몫.
디폴트 라이트 2 개는 없앨 수 없고, Ambient 라이트만 없앨 수 있다. 이것은 렌더링/ 인바이론먼트 에서 색상만 없애주면 된다. 

차이는 이렇다는 것이다. 눌러서 보셈. 

Texture
- 메인 NIF에 맵이 포함된다. 
- 맵으로 따로 NIF 를 생성한다.  
- 맵이 따로 링크로만 유지된다. 단 관리는 겜브리오에서 관리된다. 중간 관리가 실행되므로 약간 느려진다.
- 맵이 따로 링크로만 유지된다. 관리도 겜브리오에서 하지 않는다. 직접 연결해서. 지원되지 않는 포맷도 쓸 수 있게 해준다.

NPOT Texture
- 2의 배수가 아닌 텍스쳐도 넘길 수 있다. 옵션이 꺼지면 엔진에서 알아서 가까운 2의 배수로 텍스쳐 크기를 조정해 준다. 
그렇게 되면 밉맵이 생기지 않는다고 한다. (이것은 확인 불가)

Animation
APP 타임 - 어플리케이션의 타임을 이용할 것이냐의 문제 타이밍을 엔진에서 컨트롤 할 것이냐 맥스에서 컨트롤 할 것이냐를 결정하는 것으로, 인터페이스 등에서 사용될때 다르게 쓰일 수 있다. 프로그래머에게 의존할 것. 

Use existing Biped keyframes instead of sampled keyframes
바이패드 키의 익스포트 옵션. 키가 있을때만 넘길꺼냐 전부 셈플링 할거냐의 옵션 . 꺼놓으면 전부 셈플링 한다. 이것은 TCB 컨트롤러를 엔진에서 이용하지 않기 때문이다. 그러므로 옵션을 켜면 성능은 증가하는데 동작은 허접해질 수 있음.

Skin Weight Threshold %
기본으로 놔둬도 좋음. 5% 미만의 웨이트 값을 가진 버텍스는 웨이트가 삭제됨 


Export Selected
기본 인스포트에서 문제가 될 수 있는게, 카메라 옵션을 제거해도 카메라 타겟은 넘어간다는것.
그러므로 셀렉티드를 이용하면, 카메라 타겟도 넘어가지 않게 할 수 있다.

Use Original Script Templates If Available
맥스 파일에 있는 스크립트와 컴퓨터에 있는 익스포트 스크립트가 다를 때 , 맥스 파일에 저장된 것을 무시하고 원래 것으로 스크립트를 돌립니다.

익스포트 스크립트
3ds Max Art Pipeline 

Process Scripts:

  • Default Process Script – 이 스크립트는 Create ABV, Optimization, Stripification plug-in들을 디폴트 파라미터로 실행시킵니다.
  • Scene Graph Optimizations Only – 이 스크립트는 SceneGraph Optimization plug-in을 디폴트 설정으로 실행시킵니다.

Viewer Scripts:

  • Default DX Viewer Script – 이 스크립트는 Gamebryo UtilityViewer Selection 롤아웃의 DX Viewer 버튼에 의해 사용됩니다.
  • Default KFM Viewer Script - 이 스크립트는 Gamebryo UtilityViewer Selection 롤아웃의 KFM Viewer 버튼에 의해 사용됩니다.
  • Default SceneImmerse Viewer Script - 이 스크립트는 Gamebryo UtilityViewer Selection 롤아웃의 Scene Viewer 버튼에 의해 사용됩니다. 


Export Scripts

  • Default Export Script – 이 스크립트는 한 개의 NIF 파일을 익스포트 합니다.
  • Multiple KF Export With NIF Script – 이 스크립트는 한 개의 NIF 파일과, Controller Extractor plug-in이 찾은 애니메이션에 따라 여러 개의 KF 파일을 익스포트 합니다.
  • Multiple KF Export Without NIF Script – 이 스크립트는 Controller Extractor plug-in이 찾은 애니메이션에 따라 여러 개의 KF 파일을 익스포트 하고, NIF 파일은 익스포트 하지 않습니다.
  • Single KF Export With NIF Script – 이 스크립트는 NIF 파일 한 개와, Controller Extractor plug-in이 찾은 애니메이션의 합성 KF 파일 한 개를 익스포트 합니다.
  • Single KF Export Without NIF Script – 이 스크립트는 Controller Extractor plug-in이 찾은 애니메이션의 합성 KF 파일 한 개를 익스포트 하고, NIF 파일은 익스포트 하지 않습니다.


일단 이건 몰라도 큰일 없음. 
게임에 따라 변할 것이기 땜에. 

Platform:

게임의 플렛폼을 정할 수 있음. Generic은 모든 게임에 공용될 수 있으나 느리다. 
되도록이면 타겟에 맞추도록 하자. 

Image File Subdirectory
텍스쳐가 따로 NIF 로 저장될 때, 폴더를 정할 수 있음. 

Default Content Quality
텍스쳐 퀄리티를 바꿀 수 있음. 

Override Per-Texture Settings: default content quality 옵션을 사용할 때, Gamebryo Shader에서 텍스처 포맷 타입에 대해 설정된 옵션은 디폴트로 오버라이드 되지 않을 것입니다따라서 이런 설정을 오버라이드 하고 싶은 경우엔 이 박스를 체크해야 합니다.: 아마도 맥스내에서 셋팅한 무엇이 제대로 넘어가지 않을때 사용하면 되지 않을까나. 


Posted by blueasa
TAG export, MAX, NIF

댓글을 달아 주세요