maxpaint 에서 오브젝트를 pick 했을때 함수들을 전부 나열해봤습니다.
특이한 부분이 처음에 CreatedTempMap() 함수를 실행시키는데...(작은 temp 비트맵을 만들고 지운다)
제가 오래전에 만든거라 기억안나지만...
이것때문에 속도를 증가시키는것 같습니다...
한번 살펴보세요...
--------------------------------------------------------------------
-- 처음
fn CreatedTempMap = (
b = bitmap 32 32 filename:MP_TempFile
save b quiet:ON
close b
p = plane length:0.1 width:0.1 name:"temp_planeMp"
p.material = standardMaterial diffuseMap:(Bitmaptexture filename:b.filename)
delete $temp_planeMp*
)
fn ReloadAllTextureMap = (
if MeshState.TextureMapCollect == undefined do return undefined
for i in MeshState.TextureMapCollect do (
i.reload()
)
)
-- 메모리가 모자라면... gc
fn MemoryFreeForMaxPaint = (
Mmem = sysinfo.getMAXMemoryInfo()
Mmem[3] /= (1024*1024)
if Mmem[3] > (OptionSt.StartMemorySize * 2) do (
gc light:ON
print "gc light:ON ~"
)
)
-- 프로그램을 종료할때....
fn MaxPaint_close ClearMemory:ON = (
if MpTool.CropMode == ON do
CropMode.CropMode_btn.changed off
if ClearMemory == ON do (
ReloadAllTextureMap()
-- Memory remove
BrushS = theBrushStruct()
BrushFileS = undefined
UndoS = UndoStruct()
LassoToolS = LassoToolStruct()
MemoryFreeForMaxPaint() -- gc light:on
)
setSilentMode OFF -- 복구
delete $Mp_LassoMesh*
thePainterInterface.endPaintSession()
)
fn SetNoMesh = (
MeshState = theStruct()
MaxPaintObject.pickMesh.text = "Pick Mesh"
MaxPaintObject.pickMat_li.items = #()
)
---------------------- 롤아웃 안에 mesh 를 pick 했을 때의 이벤트 ----------------
on pickMesh picked obj do
(
fn _______________________PickObj = ()
MaxPaint_close ClearMemory:OFF
if obj != undefined do
(
MeshState.theMesh = obj
pickMesh.text = obj.name
-- spline Z 높이 설정
MpTool.LocalZsplineValue = getLocalZsplineValue MeshState.theMesh
MpTool.LinePaintSplineSegment = 20
MeshState.TextureMapCollect = #()
MeshState.MatIDList = #()
GetMaterialTexture MeshState.theMesh.material &MeshState.TextureMapCollect
MapNames = for i in MeshState.TextureMapCollect collect (filenameFromPath i.filename)
pickMat_li.items = MapNames
if MeshState.TextureMapCollect[1] == undefined do (
messageBox "No Texture !!"
SetNoMesh()
return false
)
for i in MeshState.TextureMapCollect do (
if (try( i.bitmap )catch()) == undefined do (
messageBox (i as string + " BitmapTexture is not find !!")
SetNoMesh()
return false
)
)
MeshState.OriginalMapNames = for i in MeshState.TextureMapCollect collect i.filename
MeshState.OriginalBitmaps = for i in MeshState.TextureMapCollect collect (
tempMap = bitmap i.bitmap.width i.bitmap.height
copy i.bitmap tempMap
)
CreatedTempMap()
MeshState.TextureMap = MeshState.TextureMapCollect[1] -- 텍스쳐맵 지정
init_PickBitmap MeshState.TextureMap
MeshState.UVElements =CollectFaceByUVElements MeshState.theMesh 1
)
)
첫댓글헉; 이렇게 소스 직접 올려 주실지 생각 못했는데;; 고맙습니다 ㅠㅠ; 덕분에 저장할때 마다 벅벅 끊기던건 없어졌네요.. 테스트를 좀 해보니 SAVE 하려는 이미지와 같은 폴더에 임시 이미지를 만들어 주는데 올려주신 CreatedTempMap 함수처럼 저장 후 임시 모델에 씌워줘야 빨라지네요. 그리고 임시 이미지 화일은 지우면 바로 느려지구요.. 왜 이런 현상이 있는건지 참 오묘하네요;;; 아무튼 너무 너무 고맙습니다...
첫댓글 헉; 이렇게 소스 직접 올려 주실지 생각 못했는데;; 고맙습니다 ㅠㅠ; 덕분에 저장할때 마다 벅벅 끊기던건 없어졌네요.. 테스트를 좀 해보니 SAVE 하려는 이미지와 같은 폴더에 임시 이미지를 만들어 주는데 올려주신 CreatedTempMap 함수처럼 저장 후 임시 모델에 씌워줘야 빨라지네요. 그리고 임시 이미지 화일은 지우면 바로 느려지구요.. 왜 이런 현상이 있는건지 참 오묘하네요;;; 아무튼 너무 너무 고맙습니다...