文档库 最新最全的文档下载
当前位置:文档库 › max插件学习笔记-现学现用

max插件学习笔记-现学现用

max插件学习笔记-现学现用
max插件学习笔记-现学现用

3D MAX SDK开发学习记录

1程序逻辑

1.1 基本思想

1.2 系统管理插件的接口部分

1.3 用户启用插件生成物体时的接口部分

1.1、基本思想

3DS MAX SDK是一组库及相应的头文件,其中包含了3DS MAX的大部分核心代码,利用库中的函数就可与系统内核通信。3DS MAX的插件(Plugins)就是一种动态链接库,每个插件都包含有若干个类及对象和公用函数。有一组公用函数及几个类的对象是提供给系统挂接和管理插件用的,另外一些类则实现插件本身的功能(如造型或修改)。

插件中的每种活动都是由相应如的类对象来完成的,如系统获取插件中定义的类的描述、插件对象创建时的鼠标交互响应、用户对插件对象参数的修改等都有相应的类,系统会调用指定的公用函数取得这些对象的地址,并在适当的时候激活它们。这就是3DS MAX的回调机制。

1.2、系统管理插件的接口部分

/* 3DS MAX 系统管理插件的接口部分*/

// 定义插件对象的32位类ID。

#define SPHERE_C_CLASSID1 8239283498

#define SPHERE_C_CLASSID2 8239283498

// 插件描述类对象

SphereClassDesc sphereDesc;

ClassDesc* GetSphereDesc() { return &sphereDesc;}

// 系统管理所需方法

// 这几个方法都是dllexport型的

LibVersion() {return VERSION_3DSMAX;}

LibNumberClasses() {return 1;}

LibClassDesc() {return GetSphereDesc();}

LibDescription() {return _T("Sphere Object. Call 1-800-plig-in");}

// 插件描述类,成员为供系统管理用的方法

class SphereClassDesc: public ClassDesc

{

public:

int IsPublic() {return 1;}// true可由用户选取,

// false由其它插件调用不与用户打交道。

void * Create(BOOL loading=FALSE){return new SphereObject;}

const TCHAR *ClassName(){ return _T("Sphere_c");}

SClass_ID SuperClassID(){ return GEOMOBJECT_CLASS_ID;}

Class_ID ClassID(){ return CLASS_ID(SPHERE_C_CLASSID1,SPHERE_C_CLASS_ID2); } const TCHAR* Category() { return _T("How To");}

}

1.3、用户启用插件生成物体时的接口部分

/* 3DS MAX用户启用插件生成物体时的接口部分*/

// 创建时期的用户鼠标交互接口

// 由一个CreateMouseCallBack衍生类的对象定义

class SphereObjCreateCallBack: public CreateMouseCallBack

{

IPoint2 sp0;

SphereObject *ob;

Point3 p0;

public:

// 开发者定义的创建时期的用户交互方法

int proc(ViewExp *vpt, int msg, int point, int flags, IPoints2 m, Matrix3 &mat);

void SetObj(SphereObject *obj) { ob=obj;}

}

// 创建时对用户鼠标交互活动的响应代码

int SphereObjCreateCallBack::proc(ViewExp *vpt,

int msg, int point, int flags, IPoints2 m, Matrix3 &mat)

{

float r;

Point3 p1,center;

if(msg==MOUSE_POINT || msg==MOUSE_MOVE)

{

switch (point)

{

case 0:... break;

case 1:... break;

}

else if(msg==MOUSE_ABORT) { return CREA TE_ABORT; }

return TRUE;

}

// 定义创物体创建时的回调类对象。

static SphereObjCreateCallBack sphereCreateCB;

// 在插件所创建的物体的类中定义获取创建回调函数地址的方法。

CreateMouseCallBack* SphereObject::GetCreateMouseCallBack()

{

sphereCreateCB.SetObj(this);

return &sphereCreateCB;

}

// 创建时期对用户修改物体参数的响应

// 在用户编辑实体参数(创建时或修改时)系统将调用BeginEditParams(),该方法负责为面添加并注册滚转页

// 在编辑完成时系统将会调用EndEditParams()。

//BeginEditParams用来在用户进入参数编辑框时

void SphereObject::BeginEditParams(IObjParam*ip,ULONG flags,Animatable *prev)

{

SimpleObject::BeginEditParams(ip,flags,prev);

this->ip=ip;

if(pmapCreate&&pmapParam)

{

pmapCreate->SetParamBlock(this);

pmapTypeIn->SetParamBlock(this);

pmapParam->SetParamBlock(pblock);

}

else

{

if (flags&GEGIN_EDIT_CREATE)

{

pmapCreate=CreateCPParamMap(

descCreate,

CREA TEDESC_LENGTH,

this,

ip,

hInstance,

MAKEINTRESOURCE(IDD_SPHEREPARAM1),

_T("Creation Method"),

0 );

pmapTypeIn=CreateCPParamMap(

descTypeIn,

TYPEINDESC_LENGTH,

this,

ip,

hInstace,

MAKEINTRESOURCE(IDD_SPHEREPARAM3),

_T("Keyboard Entry"),

APPENDROOL_CLOSED );

}

pmapParam=CreateCPParamMap(

descParam,

PARAMDESC_LENGTH,

pblock,

ip,

hInstace,

MAKEINTRESOURCE(IDD_SPHEREPARAM2),

_T("Parameters"),

0 );

}

if(pmapTypeIn)

{

pmapTypeIn->SetUserDlgProc(new SphereTypeInDlgProc(this));

}

}

void SphereObject::EndEditParams(IObjParam *ip,ULONG flags,Animatable *next)

{

SimpleObject::EndEditParams(ip,flags,next);

this->ip=NULL;

if(flags&END_EDIT_REMOVEUI)

{

if(pmapCreate) DestroyCPParamMap(pmapCreate);

if(pmapTypeIn)DestroyCPParamMap(pmapTypeIn);

DestroyCPParamMap(pmapParam);

pmapParam=NULL;

pmapTypeIn=NULL;

pmapCreate=NULL;

}

pblock->GetValue(PB_SEGS,ip->GetTime(),dlgSegments,FOREVER);

pblock->GetValue(PB_SMOOTH,ip->GetTime(),dlgSmooth,FOREVER);

}

class SphereTypeInDlgProc: public ParamMapUserDlgProc

{

public:

SphereObject *so;

SphereTypeInDlgProc(SphereObject *s){so=s;}

BOOL DlgProc(TimeValue t,IParamMap*map,HWIND hWnd,UINT msg,WPARAM wParam,LPARAM lParam);

void DeleteThis(){delete this;}

};

BOOL SphereTypeInDlgProc::DlgProc(TimeValue,IParamMap *map,HWIND hWnd,UINT msg,WPARAM wParam,LPARAM lParam)

{

switch(msg)

{

case WM_COMMAND:

switch(LOWORD(wParam))

{

case IDC_TI_CREA TE:

{

if(so->crtRadius==0.0) return TRUE;

if(so->TestAFlag(A_OBJ_CREATING))

{

so->pblock->SetValue(PB_RADIUS,0,so->crtRadius);

}

Matrix3 tm(l);

tm.SetTrans(so->crtPos);

so->ip->NonMouseCreate(tm);

return TRUE;

}

break;

}

return FALUSE;

}

2 札记

2.1 基本的介绍

2.2 插件必须的函数

2.3 类描述器方法成员

3DS MAX SDK插件是以DLL形式存在的。通常我们用Microsoft Visual C++来开发。建立一个新的工程的描述见“Creating A New Plugin Project”开发者可以将这些DLL插件存放在任何地方,但是要想法子让3DS MAX知道到哪里去找这些文件。这部分是在“Plug-In Directory Search Mechanism”里讨论的。插件开发者可以为应用加上在线帮助,并使用望可在Max Help菜单里访问。细节见“Plug-In Help System”。有一个标准的位置供开发者保存插件所需的任何配置文件。这些可能是.ini文件,二进制配置文件或任何需要的文件。详见“Plug-In Configuration System”。

2.1、基本的介绍

2.1.1 标准DLL函数

所有的插件DLL都必须实现一套标准的函数:

DLLMain()

LibDescription()

LibNumberClasses()

LibClassDesc()

LibVersion()

这些允许3DS MAX访问、维护在DLL内在插件并与之协同工作。这些函数的详情见“DLL, LIbrary Functions, and Class Descriptors”。

2.1.2 重入与线程安全的插件

3DS MAX插件必须是可重入与线程安全的。详在高级主题的“Thread Safe Plug-Ins”章节里。

2.2、插件必须的函数

3DS MAX进行DLL装入、分类、管理插件。包括DLL例程和类描述类。“Class Descriptors”提供插件类的信息,用以实现LibClassDesc()函数。

2.2.1 DLL functions

DllMain(HINSTANCE hinstDLL, ULONG fdwReason, LPVOID lpvReserved)

当DLL被装入时由windows调用。该函数也会在时间关键性操作期间被多次调用,如渲染。所以开发者在该函数内要小心谨慎。注意以下的示意代码中,在DLL第一次调用以后只有很少的语句被执行。该函数应该返回TRUE。

int controlsInit = FALSE;

BOOL WINAPI DllMain(HINSTANCE hinstDLL,ULONG fdwReason,LPVOID lpvReserved)

{

// Hang on to this DLL's instance handle.

hInstance = hinstDLL;

if (! controlsInit){

controlsInit = TRUE;

// Initialize MAX's custom controls

InitCustomControls(hInstance);

// Initialize Win95 controls

InitCommonControls();

}

return(TRUE);

}

2.2.2 LibNumberClasses()

当3DS MAX启动之后,它找到并装入这些DLLs。然后,它需要有个方法判断DLL中的插件类数目。开发者应当在本函数中提供,例如:

__declspec(dllexport) int LibNumberClasses() { return 1; }

返回值即插件类的个数。

2.2.3 LibClassDesc(i)

插件必须向系统提供一个方法以获取插件定义的类的描述器(Class Descriptors)。类描述器向系统提供DLL中的插件类的信息。本函数使系统可以访问类描述器,返回值应该是指向第i个类描述器的指针。(一个DLL中可以有许多个类描述器)。例如:

__declspec(dllexport) ClassDesc *LibClassDesc(int i)

{

switch(i) {

case 0: return &MeltCD;

case 1: return &CrumpleCD;

default: return 0;

}

}

这里是有关必须被LibClassDesc(i)返回的类描述器的资料。类描述器(Class Descriptors)向系统提供DLL中插件类的信息。类描述的一个方法负责分配插件类的新实例(Create)。开发者通过从ClassDesc衍生一个子类并实现若干方法成员来建立类描述器。下面是个简单的类描述器及其静态实例的例子。

class MeltClassDesc : public ClassDesc

{

public:

int IsPublic() { return TRUE; }

void *Create(BOOL loading=FALSE) { return new MeltMod(); }

const TCHAR * ClassName() { return _T("Melt"); }

SClass_ID SuperClassID() { return OSM_CLASS_ID; }

Class_ID ClassID() { return Class_ID(0xA1C8E1D1, 0xE7AA2BE5); }

const TCHAR*Category() { return _T(""); }

};

static MeltClassDesc MeltCD;

2.2.4 LibDescription()

当包含入口(过程物体、修改器或控制器等)的MAX文件被装入且系统还没有访问它时(如DLL无效),一个消息被发给用户。当DLL不可用时,系统要求每个DLL返回一个字符串向用户说明情况。例如,假定用户有一个融化修改器,他将此融化修改器应用到场景中的某个节点上,并保存此文件。当他将这个文件给一个没有这个融化DLL的朋友,这个朋友打开这个文件时,系统将发出一条消息说明文件中的一个入口所依赖的DLL找不到,这个消息可能是“融化修改器。想要请打电话025-1234PLUG-INS”。

DLL必须实现LibDescription()才能向系统提供这个字符串。该函数返回值即为当找不到该DLL时要显示的文字。该字符串也将显示在Summary Info/Plug-In Info...对话框中。一旦DLL中的一个插件已经在场景中使用过,系统就会把这个字符串保存到max文件里(以便在DLL丢失时显示)。

注意:即使DLL缺席时场景仍然会被打开。3DS MAX保留任何DLL丢失的节点(entities),这样如果文件被修改并保存然后再在有DLL的系统打开修改后的文件,这些节点仍然存在并链接进场景。不能访问其DLL的入口称为封闭入口(orphaned entities)。

封闭入口将作为其超类(SupperClass)的通用代表导入。该代表将在场景中显示最少的信息。举个实例:如果入口是个修改器,它将在修改器清单中显示自己的名字,但不会显示任何参数。如果没有对象类

型信息,那么将在场景中显示为虚物体(dummy)。它们可以被移动、旋转、缩放、链接、组合、删除……任何与节点相关的操作。丢失的控制器只提供不变的默认值,这些值是不可调的。

参考“Read Only Plug-Ins”部分。通过允许插件工作在只读模式,用户可以自由分发DLL,其他人除非通过了基于硬件锁ID的认证可以运行它,否则使用将受到限制直到购买自己的拷贝。以下是该函数实现的一个例子:

__declspec( dllexport ) const TCHAR *LibDescription()

{

return _T("Melt Modifier. Call 1-800-PLUG-INS to obtain a copy");

}

2.2.5 LibVersion()

开发者必须实现一个函数以便系统处理不同版本的3DS MAX插件DLL。因为MAX体系与插件的关系如此之紧密,系统有时候需要阻止插件的老版本被调用。要使MAX能够完成它,DLL必须实现一个名为LibVersion()的函数。这个函数只简单的返回一个预定义的常量,这个常量表明在插件编译时系统的版本。未来版本的MAX可能更新该常量,而老的DLL总是返回以前的值。该函数使得系统可以检查任意一个DLL是否已经被装入,如果是这样则显示一条消息。

__declspec( dllexport ) ULONG LibVersion() { return VERSION_3DSMAX; }

注意:开发者可以用下面的全局函数获取该值。

DWORD Get3DSMAXVersion();

返回正在运行的MAX版本被编译时“\MAXSDK\INCLUDE\PLUGAPI.H”文件中包含的VERSION_3DSMAX宏定义的状态。

总结

插件必须实现这五个函数:DLLMain()、LibNumberClasses()、LibClassDesc(i)、LibDescription()、LibVersion()。这些函数允许系统取得DLL中插件的信息。

2.3、六个类描述器方法成员

下面我们来讲讲六个类描述器方法成员:IsPublic()、Create()、ClassName()、SuperClassID()、ClassID()及Category()。

2.3.1 IsPublic()

该方法返回一个布尔值。如果插件可以被用户选取和指派,正是常见的情况,返回TRUE。某些插件可能是同一DLL的实现的其它插件私有专用的,并不出现在清单供用户选择。这些插件将返回FALSE。

2.3.2 Create(BOOL loading = FALSE)

MAX在需要得到一个指向插件类的新实例的时候调用该方法。例如,如果MAX从磁盘打开一个包含前边用过的插件的文件,它将调用插件的Create()方法。插件负责分配一个插件类的新实例。在上边的例子的是用一个“new”操作简单实现的。

Create()的可选参数是一个标识表明要创建的类是否将从一个磁盘文件中装入。如果该标识为TRUE,

插件可以不必做任何初始化工作,因为装入进程将会处理它。见“Loading and Saving”章节。

当系统需要删除一个插件类的实例时,它会调用Animatable的DeleteThis()方法。插件开发者必须实现该方法。因为开发使用new操作分配内存,它也应该用delete操作释放之。如开发者可以如下实现DeleteThis():

void DeleteThis() { delete this; }

进一步的细节参考“Memory Allocation”章节。

2.3.3 ClassName()

该方法返回类的名字。这个名字将出现在MAX用户界面的插件按钮上。该方法也在调试时显示类的名字。

2.3.4 SuperClassID()

该方法返回系统预定义的常量,该常量表示插件类是从哪个类衍生来的。例如,弯曲修改器返回OSM_CLASS_ID。这个超类ID被所有对象空间修改器使用。其它的超类ID例子有:CAMERA_CLASS_ID、LIGHT_CLASS_ID、SHAPE_CLASS_ID、HELPER_CLASS_ID、SYSTEM_CLASS_ID。完整的清单见“List of Super Class IDs”。

2.3.5 ClassID()

该方法必须为对象返回一个唯一性ID。3DS MAX SDK中包含一个生成这种ClassID的程序。使用该程序为你的插件创建ClassID是非常重要的。如果如果你使用任何一个例子程序的源代码来建立自己的插件,必须改变已经存在Class_ID。如果不这样,将会出现冲突。如果两个ClassID冲突,系统将加载它找到的第一个(并将在试图加载第二个时显示存在Class_ID冲突)。

一个Class_ID包含两个无符号的32位整数。建构函数为每一个赋值,如Class_ID(0xA1C864D1, 0xE7AA2BE5)。参见“Class Class ID”。

注意在MAX使用的插件样本代码将类ID第二个32位整数设为0,只有与MAX一起发售的内建插件才可以这样做。所有的插件开发者都应该同时使用两个32位整数。还有,确保你使用SDK提供程序建立类ID,这可确保两个插件类之间不会冲突。要生成一个随机的Class_ID并可选的将其拷贝至剪帖板中,单击DLL Function and Class部分的“Generate a Class_ID”。

2.3.6 Category()

在建立面板底部下拉选单选择类别。如果设成已经存在的类别(i.e. "Standard Primitives", "Particle Systems", etc),插件将会出现在那个类别里。开发者不应该加到MAX提供的类别里(见下边的注释)。如果类别还不存在,则将被创建。如果插件不需要出现在清单中,它可以简单的返回一个null字符串_T("")。Category()也被按钮设置对话框中用于插件分类。

重要说明:MAX体系在Create分支面板里有每类12个插件的限制。为预防每个类别有太多插件的问题,开发者应该总是为自己的插件建立一个新的类别而不是使用一个MAX标准插件已经使用的类别。注意早于1.2版本的MAX在每个类别有多于12个按钮时会崩溃。

管理过程物体创建过程并编辑其参数

这部分讨论以下方法:

GetCreateMouseCallBack()

proc()

BeginEditParams()

EndEditParams()

GetValue()

SetValue

NumSubs()

SubAnim()

SubAnimName()

当MAX用户将要建立一个新的过程物体时,系统会调用插件的一个方法接管创建阶段的用户输入活动。插件可以任意实现其用户界面,但必须向MAX提供一个途径与用户交互过程联系。插件要实现GetCreateMouseCallBack()函数以向MAX提供该途径。这个函数返回一个指向CreateMouseCallBack衍生类实例的指针。这个类有一个proc()方法,程序员在这个函数里定义物体创建阶段的用户交互活动。系统实际上需要一个函数指针,这个函数是由插件实现可以被系统调用。参考sphere_c.cpp源代码。

插件必须实现一些方法以处理用在命令面板中的输入。插件要负责实现从Animatable类继承来的两个方法,这两个方法用来处理用户在命令面板中的输入:BeginEditParams()和EndEditParams()。Begin在用户可以编辑实体参数时由系统调用(物体创建或修改已经存在的实体时都可能调用),它负责向面板里添加卷展栏并将其注册到系统中。加入卷展栏函数带有一个Dialog Proc参数。这个对话处理过程控制用户与对话框控件的交互活动。过程球体的例子使用了参数映射机制来简化开发者与管理用户界面控制相关工作任务。参数映射被用于管理UI交互活动。见参数映射。

End方法则在用户结束编辑一个物体的参数时被调用。系统将传递一个标识给EndEditParams()以指示卷展栏是否应该删除。如果为TURE,插件必须注销卷展栏,并将其从面板中删掉。在某些情况,物体的卷展栏应该保留在命令面板里。例如如果用户已经完成一个过程球体的建立,它的EndEditParams()方法被调用。然而用户可能希望建立另一个球,这样开发者不可以立刻移走卷展栏。这样用户界面不会因为删除后立刻加回来而闪烁。

参数映射

这部分对于理解例子及简化开发相当有用,所以列入基本内容。参数映射用于最小化插件管理用户界面参数所需的编程工作。一个简单插件,如过程球体,拥有由类似微调控件(to be continued...)。

CAN总线学习心得 摘抄

CAN总线学习心得摘抄.txt54就让昨日成流水,就让往事随风飞,今日的杯中别再盛着昨日的残痕;唯有珍惜现在,才能收获明天。原文来自:https://www.wendangku.net/doc/6c15970342.html,/my/space.php?uid=80086&do=blog&id=28342 问:第一,接收信息的工作节点需要什么响应来确认?第二,接收的子程序未调好是否意味收发两方均无法调试?如何确认发送成功? 答:网络上同一速率的正常工作节点响应:1、已设定速率;2、在工作状态。完全是由硬件(比如:SJA1000芯片)完成ACK确认。 问:请问单个can 节点可以进行调试吗?是一块一路的can适配卡,使用端口地值300h,我使用winio进行读写的,可为什么,所有的单元读出来得数据都是ff?是因为只使用了单个节点can控制器不能正常工作吗? 答:sja可实现单节点调试;ff应该是地址空间错误; 问:我还是不太明白,你说的地址空间错误,是说sja1000的地址没有选通,地址没有指向sja1000的寄存器吗? 答:首先把读写片选信号产生了再去管sja1000吧。 问:我用验收滤波器来选择接收CAN2.0B的一帧数据,29位中只对其中几位进行判别,其他位又不是定值,请问这该怎么办?可不可以掩住不关心的位?用范围应该也可以实现,不过那样感觉不好,请教大家,谢谢! 答:相关/不相关位最终都可以转化为范围描述。 问:请教关于2119 can验收过滤器的问题 请问:1、在canstarter-ii应用指南第42页中提到的“fullcan标准地址”与“标准单个地址”有何区别? 2、第45页表2.34的“值”“字”“行”“id索引”是什么概念? 答:fullcan标准地址放置的是需要自动执行接收存储的id索引表格(fullCAN功能,查看相关的介绍);标准单个地址仅仅是AF接收/屏蔽标准id的索引表格,即和一般的接收过滤理解一致。 答:fullcan模式下自动把符合的帧放在后面的ram里 标准单个把符合的数据放在接收寄存器中 问:将“LPC 系列ARM 微控制器的CAN 接收过滤设置”一文中的LTU.hpp加入原来的工程中(原来是用c做的),编译时有好多错误,用的确实是C++编译器,可感觉它对c++中的关键词不认识,请大家指教,谢谢! 答:里头好像仅仅作用域符号“::”不是C的之外没什么特别之处。 问:以前我用的是485通讯,通讯协议里面都定义了包起始和包结束(CRC可以帮助验证是否包结束)。而对于CAN这个东东,比如我要发送一个信息包有100个字节,发送倒没有问题,对于接收端,我怎样去判断包起始和包结束呢?困惑ing 请斑竹和各位大虾们指教!! 答:CAN-bus由硬件完成帧的错误控制、数据处理,因此,协议比RS-485会方便许多。 比如扩展帧格式:

3dMAX插件汇总表

3DS MAX插件表汇总 一、finalRender stage-1Release for3dsamax9.032/64bit; 二、finalToon Release2.0for3dsmax932/64bit; finaToon Release2.0for3dsmax932/64bit是3dsmax9.0下的一款卡通渲染器,除了本身强大的功能以外它还完全兼容finaRender stage-1,可以与fianRender结合使用; 三、finalShaders Release2.0for3dsmax932/64bit; finalShaders是finalrender Stage-1的一个附加程序,提供了14种预设的fr高级材质,它们包括轿车漆、X射线、半透明、CD、天鹅绒、线框、多层材质等常用材质。 三、Brazil r/s v1.2.66Download; 四、VRay1.5RC3for3dsmax6/7/8/932/64bit+绿色无乱码汉化补丁; 五、PolyBoost3.0for3ds max5-9(强大的polygon建模辅助工具); PolyBoost是一款工作于3dsmax平台下强大的polygon建模辅助工具,他对polygon下点、线、面等子物体的选择、编辑、转变等功能进行了增强,同时还新增了不少新功能,如:Viewport texture painting tool, UVW mapping等,总共集成了超过100个不同功能的相关工具。 六、Polygon Cruncher7.22(强大的模型减面工具); 很多朋友常常因为在场景中放置了过多的高面数模型导致整个场景的显示速度变慢,文件也变得很大。这时候你就需要Polygon Cruncher来帮忙了。它可以在保留你模型原有细节及材质信息的情况下对你的模型进行优化及减面,并可以将优化后的模型保存为一些常用的3D格式如:3ds、obj等。同时Polygon Cruncher 还提供了3dsmax和Lightwave插件,可以让你在3dsmax或Lightwave中直接对模型进行减面优化。 七、Greeble for3dsmax3/4/5/6/7/8/9+中文版; Greeble是一个非常小巧的3dsmax插件,虽然它的功能很简单就是在物体表面随机生成四方体。不过对于像生成城市建筑群或是丰富太空船表面细节等工作,Greeble的简单功能却可以派上大用场。 八、Mankua Texture Layers2for Max932/64bit(高级贴图插件); Texture Layers2是一套高级贴图工具,并被广泛应用于CG制作及游戏开发。借助Texture Layer2,用户可以在单一的修改器中创建出多个贴图通道,并可将其应用于动画。该插件还拥有自己的子对象面/面片选择集功能。 九、Ephere Ornatrix v1.5Retail for Max932bit(毛发模拟插件);

3DSmax学习笔记(5)------布尔运算

3DSmax学习笔记(5)------布尔运算 在3DSmax中,布尔运算也是一个重要的内容。通过布尔运算可以对图形进 行修改,布尔运算在二维图形和三维图形中都可以进行操作。 1。在二维图形中进行布尔运算 A。将要进行运算的所有图形合并在一起 B。点击其中一根样条线-------修改---------编辑样线条--------在编辑样条线对 像层里面,点击样条线图标, --------点击附加命令。--------点击另外一 根样条线(使该样条线变成白色)----关闭附加命令 C。在命令面板下面找到布尔运算命令。(选择要进行运算类型。) 然后点击任意一条样线条(使它变成红色)。-------点击布尔运算命令------点 击另外一条样线条运算成功。OK 要记住:

在二维图形中进行布尔运算时一定要点击样条线图标,要使用附加命令。如 果没有点击样条线图标,布尔图标不会显示,没有使用附加命令,就不能进 行布尔运算 用布尔运算时,要点击两次。在差集运算中,变化的是先点成红色的样条线,第二次点击的样条线会被全部剪去,记住这一点对於要想通过布尔运 算做成什么样的图形很重要 2。在三维图形中进行布尔运算 A。将要运算的图形合并在一起,并放在一定位置 B。点击其中一个图形------点击复合对像------点击布尔命令-----选择要进行运算类型------点击拾取操作对像-----点击另一个图形。OK。 记着:在差集运算中,要变化的是先选中的第一个图形(A) 3。多个物体的布尔运算 在多个物体进行布尔运算时,容易出错,解决办法是,将要进行相同运算的物体先合并在一起,然后再进行布尔运算,合并物体的方法是:用选择 工具先选择一个物体-----点击右键或点击修改器------转变为可编辑网格----点 击附加命令-----点击需要合并在一起的物体,让这些图形都变成白色,合并 完成。以后,按照上面的各个步骤进行布尔运算。 下面是多个物体进行布尔运算图示:

Extjs4开发笔记(收集整理)

Extjs4开发笔记(一)——准备工作 2011-06-28 来源:mhzg 作者:mhzg (共2 条评论) 使用extjs4 mvc+asp来实现员工管理系统,系统会使用大量的extjs4组件及插件,期待着这个系统完成。 本文内容已经重新更新,旧版请查看 https://www.wendangku.net/doc/6c15970342.html,/a/20116/20116281100279-old.html。 重写原因:由于开始准备的时候,就是按照传统开发去做的,写了一部分之后,有网友和同事提出:“为什么不用MVC模式”呢?这样的问题让我对目前传统开发的心发生了一些细微变法,对啊,为什么不用MVC模式呢?我征求了一下同事及热心网友的意见,都同意使用MVC模式开发。从而,我删掉了原来所有目录,重新按照MVC模式去组织目录结构,很快的,目录结构准备好了。 那。。我们重新来过,使用EXTJS4.0的MVC模式,开发这套员工管理系统。给个简称吧。SMS(你懂得。呵呵!)。 一、建立环境: Data:数据库文件夹,里面放着管理系统用的数据库文件。数据库目前只有三张表。分别是: Menu:菜单项 user:员工注册信息 userinfo:员工个人资料信息 Images:图片目录,一些自定义的图片文件 Include:服务端文件目录,里面包含ASP所用到的Conn.asp、Function.asp等文件App:整个SMS所用到的自定义JS文件,里面有一个controller文件夹,一个view 文件夹。controller文件夹放置主代码,view文件夹放置各组件。这几个文件夹中的内容会在第二章进行介绍。 Extjs4:此目录放置Extjs4的库文件。

3dsMAX基础入门工具使用

第三章Max基础入门工具使用 本章要点: ●了解max的界面分布 ●了解常用工具所在的位置 3.1 Max9.0基础界面 图3-1max界面 3.2 Max9.0菜单栏界面 温馨提示:在这里我们只讲解我们在制作建筑模型时常用的工具和菜单栏。 图3-2 Max9.0菜单栏界面 1.File —文件菜单:较常用的菜单,导入cad、合并模型。 2.Edit—编辑菜单: 3.Tools—工具菜单:

4.Group—组、集合菜单:常将物体进行打成组方便管理。 5.Rendering—渲染菜单:将模型制作完成后制作成效果图菜单。 6.Customize—自定义设置菜单:设置界面、快捷键等文件菜单。 3.3 File(打开)菜单详解: 图3-3 File菜单 温馨提示:每个工具都可以使用键盘快捷键来使用,如New新建Max文件先按Alt激活菜单栏在按F进入File菜单,找到New在n下方带有下划线可以直接按n快捷激活命令。每个工具带下划线的单词字母都是快捷键,不过是要先进入指定的菜单才可以使用。也可以使用工具后面的快捷键如New后方的Ctrl+N。 1.New—新建Max文件 2.Reset—重置Max:将Max程序重置一次恢复到最开始的界面 3.Open—打开Max文件 4.Open Recent—打开最近打开过的Max文件 5.Save—保存Max文件 6.Save As—另存为 7.Save Selected—选择保存:将当前所选择住的物体进行独立保存 8.Marge—合并:将未打开Max文件合并到已经打开的Max文件中,将B文件放在A文件中 图3-4 marge合并

3Ds MAX骨骼动画导出插件编写

如何编写自己的3DsMAX骨骼动画导出插件 潘李亮 2007-12-7 xheartblue@https://www.wendangku.net/doc/6c15970342.html, 一 简介 在3D引擎中,骨骼动画系统是非常重要的一个组成部分,虽然在一个游戏的真正开发过程中,一个优秀的游戏引擎也许不需要用户去关心它的骨骼动画系统是如何实现的,但是还是有很多人希望了解这样的一个技术。 一个商业化的骨骼动画系统包含的组件是很多的,比如有DCC(Digital Content Creator 数字内容创建工具,比如3Ds MAX , Maya等)插件,蒙皮计算程序,蒙皮渲染程序,动作计算程序,表情系统,柔体系统,音唇同步,以及针对物理系统的接口等。其中DCC 插件包含DCC的导出插件和其他专用数据生成插件。 本文将会介绍骨骼动画系统里的一个基础部件:3Ds MAX 的骨骼动画导出插件。2005年底的时候我在csdn的游戏开发频道里发过一个在linux下可以运行的骨骼动画程序,使用的是自定义的骨骼动画模型。从程序发布以后,就有很多人问我关于3Ds MAX插件的编写和骨骼动画数据管理等问题。网络上相对这方面的资源比较少,希望本文对那些在寻找和学习这方面内容的读者能有一定的帮助。另外鉴于作者水平有限,文中难免出现错误的地方,欢迎指正与批评。 本文是介绍如何编写3DsMAX插件的文章,所以假设读者有一定的骨骼动画原理基础和图形编程经验。如果对这两块还比较陌生的读者,建议先阅读相关资料。 二 3Ds Max SDK和插件系统 选择编写3DsMAX(以下简称MAX)来导出的数据的原因是MAX拥有强大的建模能力,并且通过它美工可以方便的修改动作,材质等属性。同时个人感觉MAX的SDK 对初学者来说虽然有些晦涩。但是这个SDK还是能非常直接的反映出MAX本身的工作流程的,在熟练以后,使用起来还是比较顺手的。 最新版本MAX9的MAXSDK包含在安装光盘里,在安装完MAX后直接安装SDK,并在工程里添加maxsdk的包含路径和库的路径就可以开始编译max插件了。MAX SDK 还提供了3Ds Max Help for Visual Studio,这个帮助系统可以集成到Visual Studio .NET 的帮助系统中,非常方便。建议在安装的时候一起装上。 MaxSDK主要目的就是用来开发MAX插件,虽然Max也提供了MaxScript,也可以用来做插件,但是对C++程序原来说,MaxSDK则更顺手一些。 Max插件根据用途分为好几种,每种对应不同的扩展名,在游戏开发中,我们通常比较关心三种类型的插件,他们分别是: 导入/导出插件,对应扩展名为dli/dle, utility 插件,对应扩展名为dlu , 以及扩展名为dlm的modifier。导入导出插件基本上MAX与其它工具交互的接口。Utility插件则可以为MAX增加很多操作功能面板。Modifier则是3DsMAX 3DsMax自带的插件放在X:\3DsMax\maxsdk\stdplugs目录下,而我们自己编写的插件通常会放到X:\3DsMax\maxsdk\ plugins目录下。只要把插件放到这两个目录下,Max 在启动的时候就会自动加载你的插件。很多初学者可能会问dlm/dle这些插件是怎么生成的呢?其实这些都是一些标准的dll程序,只是扩展名不同而已。跟编译一个普通的Windows DLL没有区别。

3dmax学习心得

3Dmax学习心得 在大三这一学期快接近尾声的时候,3dmax这门课的学习也将告一段落。在学习了一个学期的3dmax这门课程之后,我对3dmax这门学科有了更加深入的理解与掌握。在大二选课的时候,当我看到3dmax这个课名时,就深深被其吸引,后来了解到这门课是关于三维空间的一些建模以及动画的制作时,对于热爱画画、乐于摆设物品的我来说,这无疑更加坚定了我要学好这门课的决心,于是我满怀期待与信心的选修了这门课程。 本次学习首先从先从了解3dmax开始,了解到3dmax是个庞大的软件,广泛应用于影视动画、建筑设计、广告、游戏、科研等领域。于是我想学会了3dmax就是学会一项非常不错的本领,然而接下来的课堂授课情形却与我想的大不相同。 可能因为3dmax只是一门选修课的原因,所以教务处并没有给我们颁发统一的教材。无奈之下,我便去图书馆借阅了3dmax的相关教材。后来上课发现我并不能跟上老师讲课的进度,因为所借教材的版本与老师PPT的内容有出入,而且即便是认真听课,记录笔记,我也并没有感觉自己有多大收获,总是一种纸上谈兵的感觉,直到后来老师亲自带领我们去机房实验,我才真正感觉自己获益良多。 我们学校实验室机房给的软件是3dmax2008免安装版,当我打开它时却不知到从哪里入手,眉毛胡子一把抓,不但学不到具体的东西,也增加了学习的难度,打击自己的信心,上课听讲的那些知识完全无用武之地。后来老师便在PPT上一步一步示范做法给我们看,跟着老师的步骤,做的也到快,不到一节课的功夫,我就把一个花瓶做好了。 通过一个学期的3dmax的学习,我也用3dmax做了许多物品,有茶几、台灯、花朵、跳动的文字、飘雪的贺卡……从做这些物品的过程中,我慢慢地对3dmax的使用有了一定的理解并且对制作物体的过程掌握了一定的技巧。当我通过“车削”按钮将一条曲线车削成花瓶模样的时候,那种喜悦之情是无法言表的;当我看到通过自己一步步的尝试将动画“跳动的文字”做出来的时候,我心里充满了欣慰,甚至会将做成的动画文件重复播放几遍以此来欣赏自己的成果。当然了,在制作这些物品的过程中,我也遇到了不少的困难,例如一步做错,原先做起来的都毁了,都要全部重新来过,于是我学会了每做一步就将半成品保存下来,这样即便中间出了差错也无需重新来过,还有几次,我实在找不出3dmax界面中要用到的相关的按钮,在我一遍遍尝试无果,无奈之下,我只有寻求同学和老师的帮助…..在这一次次的查找,尝试,求助的过程中,我也总是会有灰心丧气,垂头懊恼的时候…… 总而言之,3dmax这门课给我带来的是高兴多于悲痛,就是在一次次的懊恼,欣喜,失望,狂欢中我慢慢掌握了3dmax的学习要领,我觉得结果并没有那么重要,只要过程是自己尽心尽力而为就好。在这门课快结束之际,我也不知不觉中又多学会了一门本领,这是一件令人兴奋的事。在这过程,我充实了自己,于这结果,我丰富了自己。学完3dmax这门课,我实在是获益匪浅。

capture allegro 学习笔记

Capture Allegro学习笔记 Allegro中常见的文件格式 .brd 工具:PCB Design Expert PCB布线 .ddb 工具:Protel .art 工具:CAM350 Allegro PCB Design file/impot ARTwork .d 工具:pads2005 .drl 工具:Protel .opj 设计项目工程 .olb 创建新的元件库 allegro/APD.jrl :记录开启Allegro/APD 期间每一个执行动作的command . 产生在每一次新开启Allegro/APD 的现行工作目录下 .env :存在pcbenv 下,无扩展名,环境设定档. allegro/APD.ini :存在pcbenv 下,记录menu 的设定. allegro/APD.geo :存在pcbenv 下,记录窗口的位置. master.tag :开启Allegro/APD 期间产生的文字文件,记录最后一次存盘的database文件名称,下次开启Allegro/APD 会将档案load 进来. 从Allegro/APD.ini搜寻directory = 即可知道Master.tag 存在的位置 . lallegro.col :存在pcbenv 下,从设定颜色的调色盘Read Local 所写出的档案.只会影响到调色盘的24 色而不会影响class/subclass 的设定. .brd :board file (Allegro). .mcm :multi-chip module (APD) ,design file. .log :记录数据处理过程及结果. .art :artwork 檔. .txt :文字文件,如参数数据,device 文件 .. 等. .tap :NC drill 的文字文件. .dat :资料文件. .scr :script 或macro 记录文件. .pad :padstack 檔. .dra :drawing 档, create symbol 前先建drawing ,之后再compiled 成

CADor3Dmax常用命令及快捷键(可编辑修改word版)

CAD 常用命令及快捷键直线:L 构造线: XL 圆:C 三维阵列: 3A 弧:A 创建面域: REG 矩形:REC 交集: IN 圆环:DO 并集: UNI 多段线:PL 差集: SU 点:PO 剖切: SL 图样填充:H 消隐: HI 样条曲线:SPL 查询面积: AA 双点射线:XL 查询数据库信息: LI/LS 册除:E 测量距离: DI 复制:CO 或CP ab 度O:%%D (a/b= 下标:^2) 镜像:MI 直径¢:%%C ( 上标:2^) 阵列:AR 正负号±:%%P 移动:M 创建属性定义块:ATT 旋转:RO 外部参照:XR 对齐:AL 世界坐标系:UCS 比例缩放:SC 回到当然视图:PLAN 折断:BR 着色:SHA 剪切:TR 剖切:SL 延伸:EX 三维动态观察器:3DO 倒角:CHA 旋转二维对象创建三维体:REV 圆角:F 将二维对象拉伸为维实体:EXT 视窗缩放:Z 长方体:BOX 视窗平移:P 球体:SPHERE 图块定义:B 渲然:RR 标注设置:D 恢复:OOPS 插入块:I 放弃:UNDO 拉伸图形:S 重做:REDO 偏移:O 删除: E 炸开:X 改变对像的长度:LEN 单行文本: DT 即里平移:P 多行文本: MT 重生成:RE 文字样式: ST 命名视图:V 编辑标注: ED 创建对象编组:G 端点:END 定距等分:ME 交点:INT 定数等分:DIV 圆心:CEN 修剪: TR 中点: MID 基点:FRO 垂足:PER 延伸:EXT 切点:TAN 绘制多线: ML

3Dmax 菜单中英对照New 〈新建〉 Reset〈重置〉 Open 〈打开〉 Save 〈保存〉 Save As〈保存为〉 Save selected〈保存选择〉 XRef Objects〈外部引用物体〉 XRef Scenes〈外部引用场景〉 Merge〈合并〉 Merge Animation〈合并动画动作〉 Replace〈替换〉 Import〈输入〉 Export〈输出〉 Export Selected〈选择输出〉 Archive〈存档〉 Summary Info〈摘要信息〉 File Properties〈文件属性〉 View Image File〈显示图像文件〉 History〈历史〉 Exit〈退出〉 二、Edit〈菜单〉 Undo or Redo〈取消/重做〉 Hold and fetch〈保留/引用〉 Delete〈删除〉 Clone〈克隆〉 Select All〈全部选择〉 Select None〈空出选择〉 Select Invert〈反向选择〉 Select By〈参考选择〉 Color〈颜色选择〉 Name〈名字选择〉 Rectangular Region〈矩形选择〉 Circular Region〈圆形选择〉 Fabce Region〈连点选择〉Lasso Region〈套索选择〉Region: 〈区域选择〉 Window〈包含〉 Crossing〈相交〉 Named Selection Sets〈命名选择集〉 Object Properties〈物体属性〉

学习3Dmax的一些心得

学习3Dmax的一些心得 10电信2班100303080 翁志鹏 学习3Dmax首先要了解3Dmax是什么? 3D Studio Max,常简称为3ds Max或MAX,是Autodesk公司开发的基于PC 系统的三维动画渲染和制作软件。其前身是基于DOS操作系统的3D Studio系列软件,最新版本是2012。在Windows NT出现以前,工业级的CG制作被SGI 图形工作站所垄断。3D Studio Max + Windows NT组合的出现一下子降低了CG 制作的门槛,首选开始运用在电脑游戏中的动画制作,后更进一步开始参与影视片的特效制作。 总的来说,学习3Dmax是对3D Studio Max系列软件的学习与应用。 3D Studio Max是一门高深的校选功课,要想在老师五六节课的教导下就学会,对于一个初学者来说,那是相当的有难度啊,所以还要靠我们自己在课外自学,不断的看视频,不断的练习…… 学习3Dmax你要知道怎么安装软件,否则,一切都是神马浮云。所以老师第一节课就教我如何安装3D Studio Max。 1、点击“Install Products”安装产品; 2、选取要安装的项目; 3、选取“I Accept”,进行下一步; 4、输入使用者与产品信息; 5、点击“Install“开始安装; 6、正在安装,请等待。。。需要一定的时间; 7、点击“Finish”完成安装! 如需长久使用还需要进一步下载注册机破解一下。 为了便捷,我们还要记住一些快捷方式: 改变到上(Top)视图【T】 改变到底(Bottom)视图【B】 改变到相机(Camera)视图【C】

3dsMax2014版快捷键大全

常用快捷键 * 【鼠标中键】平移运动 * 【Alt+鼠标中键】旋转视图 * 【Alt+ctrl+鼠标中键】视图的放大缩小* 【Ctrl+z】恢复上一步 * 【Ctrl+y】重复上一步 * 【Ctrl+a】全选 【Ctrl+I】反选 * 【G】网格切换 * 【F】前视图 * 【T】顶视图 * 【L】左视图 * 【B】底视图 * 【Alt+W】最大化显示视图 【Ctrl+C】将摄相机适配到视图 【Alt+Q】将当前选择的物体隔离并最大化显示在视图上,其它物体暂时消失显示。【C】将所选的视图转换为摄相机视图【w】位移 【e】旋转 【r】放缩 【O】显示降级适配(开关) 【V】打开视图快捷键切换菜单,选择视图进行切换。 【+】放大坐标轴 【-】缩小坐标轴 【Ctrl+Atl+z】在当前视图完全显示所有物体 【z】在当前视图完全显示所选物体 * 【shift+鼠标左键】复制所选择的一个或多个物体 【Ctrl+鼠标左键】增加选择 【Alt+鼠标左键】减少选择 * 【H】菜单选择物体 * 【M】显示材质编辑器 【N】打开动画记录按钮 【/?】播放动画 * 【F3】实体显示和线框显示的切换 * 【F4】线框显示 * 【F9】快速渲染 * 【F10】显示渲染菜单 [ ] 分别放大或缩小一倍视图显示 材质M 选择物最大z 满屏ctrl+AlT+z 视图模式ctrl+x 最大化ALT=W 渲染Shift+Q = F9 视图切换F3 显示降级适配(开关)【O】 适应透视图格点【Shift】+【Ctrl】+【A】 排列【Alt】+【A】 角度捕捉(开关) 【A】 动画模式(开关) 【N】 改变到后视图【K】 背景锁定(开关) 【Alt】+【Ctrl】+【B】 前一时间单位【.】 下一时间单位【,】 改变到上(Top)视图【T】 改变到底(Bottom)视图【B】 改变到相机(Camera)视图【C】 改变到前(Front)视图【F】 改变到等大的用户(User)视图【U】 改变到右(Right)视图【R】 改变到透视(Perspective)图【P】 循环改变选择方式【Ctrl】+【F】 默认灯光(开关) 【Ctrl】+【L】 删除物体【DEL】 当前视图暂时失效【D】 是否显示几何体内框(开关) 【Ctrl】+【E】 显示第一个工具条【Alt】+【1】 专家模式�全屏(开关) 【Ctrl】+【X】 暂存(Hold)场景【Alt】+【Ctrl】+【H】 取回(Fetch)场景【Alt】+【Ctrl】+【F】 冻结所选物体【6】 跳到最后一帧【END】 跳到第一帧【HOME】 显示/隐藏相机(Cameras)【Shift】+【C】 显示/隐藏几何体(Geometry) 【Shift】+【O】 显示/隐藏网格(Grids) 【G】 显示/隐藏帮助(Helpers)物体【Shift】+【H】 显示/隐藏光源(Lights) 【Shift】+【L】 显示/隐藏粒子系统(Particle Systems) 【Shift】+【P】 显示/隐藏空间扭曲(Space Warps)物体 【Shift】+【W】 锁定用户界面(开关) 【Alt】+【0】 匹配到相机(Camera)视图【Ctrl】+【C】 材质(Material)编辑器【M】 最大化当前视图(开关) 【ALT】+【W】 脚本编辑器【F11】 新的场景【Ctrl】+【N】 法线(Normal)对齐【Alt】+【N】 向下轻推网格小键盘【-】 向上轻推网格小键盘【+】 NURBS表面显示方式【Alt】+【L】或【Ctrl】 +【4】 NURBS调整方格1 【Ctrl】+【1】 NURBS调整方格2 【Ctrl】+【2】 NURBS调整方格3 【Ctrl】+【3】 偏移捕捉【Alt】+【Ctrl】+【空格】 打开一个MAX文件【Ctrl】+【O】 平移视图【Ctrl】+【P】 交互式平移视图【I】 放置高光(Highlight) 【Ctrl】+【H】 播放/停止动画【/】 快速(Quick)渲染【Shift】+【Q】 回到上一场景*作【Ctrl】+【A】 回到上一视图*作【Shift】+【A】 撤消场景*作【Ctrl】+【Z】 撤消视图*作【Shift】+【Z】 刷新所有视图【1】 用前一次的参数进行渲染【Shift】+【E】 或【F9】 渲染配置【Shift】+【R】或【F10】 在xy/yz/zx锁定中循环改变【F8】 约束到X轴【F5】 约束到Y轴【F6】 约束到Z轴【F7】 旋转(Rotate)视图模式【Ctrl】+【R】或【V】 保存(Save)文件【Ctrl】+【S】 透明显示所选物体(开关) 【Alt】+【X】 选择父物体【PageUp】 选择子物体【PageDown】 根据名称选择物体【H】 选择锁定(开关) 【空格】 减淡所选物体的面(开关) 【F2】 显示所有视图网格(Grids)(开关) 【Shift】+ 【G】 显示/隐藏命令面板【3】 显示/隐藏浮动工具条【4】 显示最后一次渲染的图画【Ctrl】+【I】 显示/隐藏主要工具栏【Alt】+【6】 显示/隐藏安全框【Shift】+【F】 *显示/隐藏所选物体的支架【J】 显示/隐藏工具条【Y】/【2】 百分比(Percent)捕捉(开关) 【Shift】+【Ctrl】 +【P】

3DMAX插件全集-含下载地址

3DMAX插件全集-含下载地址~ max渲染插件(高级渲染器) 3DS MAX 6由众多的插件组合而成,每个插件实现一部分功能,3DS MAX 6就像一个容器,将能各式各样能实现各种功能和效果的的插件组合在一起,使每个插件都有条不紊地工作,从而形成了功能强大的3DS MAX 6。以下提供的插件基本上是6.0版的.其中注明R5为5.0版的 插件分为两种:Standard MAX plug-ins(标准插件)和Additional MAX plug-ins(附加插件)。在3DS MAX 6的安装目录下有两个文件夹,stdplugs和plugins,其中stdplugs用来存放标准插件,plugins用来存放附加插件。 -> RealFlow 2.5 for Max6(流体设计) -> Cloth Fx v1.26 For 3dsMax 6(衣服) -> AfterBurn3.1 FOR 3DSMAX 6(焰火,云烟) -> ACT 1.6 (角色肌肉动画系统) -> Archvision rpc(RPC全息模型) -> AI Implant(群体动画适时互动的智能插件) -> BonesPro v3.0 肌肉蒙皮插件 -> BodyStudio 2.0(身体造形) -> ClothReyes 3.11(制作衣服的插件) -> CartoonReyes 2.0 卡通渲染插件 -> Darksim SimbiontMAX (生成千变万化的材质) -> Deeppaint v2.1.1.4(贴图编辑工具) -> Digitalpeople 人物制作插件。digimation公司出品的产品 -> Dreamscape 2.1 山水制作插件 ->Druid v1.2 For R5 做草的插件 -> GroundCrew 地面 -> Glu3D v1.1.47 流体插件 -> Hair1.01.18 毛发生成器

心得体会 大二3dmax学习心得

大二3dmax学习心得 大二3dmax学习心得 3Dmax学习体会 学习3Dmax已经有一个学期了,现在提到三维建模,我不再是一脸迷茫,不知所云了,我对此有了最初的认识,并且在老师的指导下会完成几个简单的小作品。 还记得第一节课时老师给我们展示了一些3Dmax做出来的产品,当时我被深深地吸引了,我当时立志要努力学好这门课,也曾幻想着有那么一天自己也能制作出一件优秀的作品。老师课堂上几下就做出来的作品,基于自己对软件还不够熟练,回去我要花上好几个小时去弄,刚开始还挺有耐心的,久而久之就懈怠了,特别是当自己遇到困难解决不好时,因此刚开始建的三维模型效果很差。老师说过熟能生巧,我决定努力发展自己对3Dmax的兴趣,把它作为一种爱好去学习,我的每一件作品都是用心在做,都有自己鲜明的特色,并在学习的同时也收获着快乐。 为了学好3Dmax,我总结了以下几点方法。首先,兴趣是最好的老师,有了兴趣就有了学习的动力;其次,多去图书馆转转,找一些相关书籍,先模仿书上的例子做,熟悉了命令之后再自己做,遇到问题及时翻书;最后,多学多练,多与老师交流并且与同学互相学习,遇到不懂的命令及时提问。以上是我自己的一些看法,做学问不能知难而退,我相信通过自己的努力我可以提高自己的动手能力、提升自己的综合实力,制作出一些优秀的作品,并乐在3Dmax的学习过程中。

最后,感谢余老师在我们的学习过程中的耐心指导,学好这个软件在设计行业中一定会终身受用的。第二篇、3dmax学后的认识及感想大二3dmax学习心得 xx大学公共选修课 3dmax室内设计期末作业 前言 为了适应社会经济的日益发展,满足人民物质生活水平不断提高的需要,国内建筑装潢行业正在蓬勃发展,从而对设计师的设计水平也提出了更高层次的要求。随着现代科学技术的发展,计算机业被广泛应用到建筑行业的方方面面,,设计师可做出建筑效果图供用户欣赏与选择。 就效果图制作来说,3DSMAX系统以其强大的3D设计功能成为当前效果图设计软件的佼佼者,它不仅被应用于建设装潢业,而且还被广泛应用于制作电影特技效果、影视广告、计算机游戏、教育娱乐等。电脑效果图最大的特点就是直观,一目了然,能使客户在装饰之前就能事先感受装修的效果,做到心中有底。一般情况下,一套装饰设计方案需要客户与设计师几个回合的沟通与交流才能敲定。如果没有效果图,沟通与交流只能建立在空间想象的基础之上。有了效果图,讨论时就能言之有物,对一些不满意的地方及早进行修改完善,保证充分满足个性化的需求。 一、什么是3dmax? 3DStudioMax,常简称为3dsMax或MAX,是Autodesk公司开发的基

2019年java学习心得总结

2019年java学习心得总结 大学生java学习心得总结要怎样写?以下是提供的java学习心得总结范文参考阅读。 学习java的心得总结【1】 学习任何语言(包括英语),基础一定要打好,没有学会走路跑步不可能快吧,学习java的心得体会。 所以学习JAVA一定要先把JAVA的几个基本组成元素学好。 以下是我总结出来的学习顺序和注意事项: 1、数据类型JAVA是一种强类型语言,各种类型不会自动转换,使用前必须先定义。 2、方法方法相当于定义一个"宏"、一个"函数",方法的定义格式为: "说明符修饰符返回值方法名(参数){方法体}。"

在学习方法的时候要注意"说明符、"修饰符"、"返回值"这三样东西。 我们在调用JAVA的自带的"类"里面的"方法"的时候,我们一开始是不用看懂这些方法里面写什么(当然,你能看懂是最好)。 我们只要知道,使用了这个方法后,"返回值"的"类型"说明 3、类在JAVA中最经常听到词,也是最麻烦的东西,类的定义格式为: 说明符class类名extends超类名implements接口名{主体} 4、变量常量JAVA的常量名一般用全大写字母表示,并且为了节省内存,一般定义为静态(JAVA程序中的名字我们经常有个默认的规则,类名所有单词第一个字母大写,方法名第二个单词开始第一个字母大写,变量名小写,这样我们一看程序就非常清楚了,从小养成良好的习惯嘛,呵呵),变量的定义格式为: "修饰符数据类型变量名"

变量在类中定义(不在方法体中的部分称为域)和在方法体中定义是不同的(在方法体中定义不需要修饰符)。 学习变量的时候要注意两个特殊的东西"this"和"super"。 同时我们就要学习什么叫"覆盖"、"重载"。 5、控制流所有的编程语言的控制语句无非就是几个ifelseforwhiledoswitch。 6、接口:一个抽象的东西,接口可以多继承,解决了类只能单继承的问题。 接口的定义格式为: 说明符interface接口名{主体}, 接口内的方法都是没有主体的,只有常量或变量。 当类使用接口的时候,一定要"覆盖"接口的方法。

3DSMax常用快捷键

3DSMax常用快捷键 常用的是F:正视图;T:顶视图;L:侧视图;P:透视图;C:相机视图。还有其他的,我就不列了。 二视图的变换 常用的是 Alt+鼠标中键按下:旋转视图(在透视图模式下,如果是在二维试图里,就会切换成轴测图; 鼠标中键滚动:缩放当前的视图,缩放原点就是鼠标放的地方,所以想看哪里,就把鼠标放到那里; Alt+Z:有时鼠标滚轮动态太大,就用这个可以慢慢缩放。 鼠标中键按下:平移视图; “【”和“】”:这两个键和中间缩放一样,但可以和命令同时操作,对相机视图不起作用; I :将视图的中心移到鼠标放的地方,也是可以和其他命令同时工作的。 D:关闭当前视图的更新,省显卡啊。 1左边那个键:刷新视图。 Shift+Z:对视图操作的undo。

三物体的观察 Z:将所选物体作为中心来观察,就好像maya里的F,这个太长用了。 Alt+Q:只观察所选物体,临时隐藏其他的,也很长用。 F3:线筐显示和shader显示的切换。 F4:shader显示下再显示线筐的切换。 F2:这个也用的很多,就是选择了poly里的单独的一个面以后,默认都是一个大红块,很不便于操作,按F2就只红显选择的框了。 J:隐藏物体选择框的,有时候选择的物体外面那个4个角的白色线筐挺烦人。 O:快速观察切换,我一般都关上,除非显卡太差。 四物体的变换 Q,W,E,R:不讲了吧,呵呵,抄maya的。 F5,F6,F7是三个轴向的约束切换,对位时要用到;F8则是三个位移平面约束的切换。 S:捕捉。要和F5,F6,F7结合用更好。 空格键:锁定当前选择的物体。很有用,不用把鼠标放在物体上也可以移动或者作别的变换了。

3DSMAX插件安装方法

3DSMAX插件安装方法(新手必看) - 3D插件 减小字体增大字体作者:佚名来源:不详发布时间:2007-8-5 17:37:14 3DSMax插件安装完全向导 相信所有使用3DSMax的朋友都会有一个共同的体会——那就是Max的插件实在太多了!没错,3DS Max的一大特色之一就是其拥有丰富多样的插件。也正是有了这些强有力的插件,才使Max在众多3D软件中独树一帜!虽然一代又一代不断更新的Max正不断的充实着自己功能,插件的地位也不象Max刚推出1.2、2.x那样重要;但是插件本身纷繁变化的独特魅力和简单、强大的功能仍然吸引着广大用户。 然而作为可以任意扩充的插件,由于他本身并不是由3D软件厂商自行开发的,所以其在安装和使用时并没有统一的方式。加上很多开发者独特的习性,所以普通用户在安装和使用上经常会碰到各种麻烦,因此给插件的使用带来了不便。正是因为这个原因,本人撰写这篇文章就是为了帮助所有使用3DSMax的朋友解决插件的安装问题。 插件破解组织介绍: 可以说除了免费共享插件,国内所有从各种渠道得到的大型插件都是由那些隐蔽的开发小组破解后公布出来的。相信如果没有这些骇客高手的帮助(当然这些高手背后都有大财团支持),没有他们来去掉那些恼人的产品序列号、密码、硬件加密狗等等各种防盗手段,我们是无法享用到这些强大的功能的。所以,正在使用这些工具的朋友都应该感谢他们的努力。所要提醒各位的是:我们在这儿并不是鼓励这种盗版行为,骇客们破解这些软件提供给大众使用的目的是——能使更多的人了解、使用这些强大工具,是一种提供学习资源为目的的行为;所以当您在使用这些软件从事商业行为时,应该去购买该软件的license,这样才是维护开发者利益、尊重作者的合法正当行为。 我们现在常见的破解组织有(按破解的质量排名):XFORCE、HARVEST、TRiNiTY、TiTAN、SMB、ZENITH、TFL、RELiEF等。这些小组经常破解一些比较著名软件和插件,同时也会根据自己的喜好选择性的破解一些有个性的软件,如:XFORCE独家破解的Illusion(超级粒子系统)软件就是很好的例子。 通常这些被破解软件会发布在一些隐蔽的公共服务器上,相信经常访问WEZ(可惜前段时间WEZ给FBI盯上了,加上主要承办人的去世,现以限于瘫痪......残念!)的朋友常常能在第一时间内得到,而后再是流通到其他国内服务器上,最后再是发行到D版市场。

3dmax学习心得-入门必看

在大四对于3Dmax的课程学习已经结束,对于3Dmax有了更加深入地了解,学会了一项非常不错的本领。 本次学习首先从先从了解3DSMAX开始,了解到3DSMAX是个庞大的软件,广泛应用于影视动画、建筑设计、广告、游戏、科研等领域。初学者自学的时候往往不知到从哪里入手,眉毛胡子一把抓,不但学不到具体的东西,也增加了学习的难度,打击自己的信心。所以想学3DSMAX之前,必须要有个明确的方向,学3DSMAX想应用于那些方面?这样才可以针对性地去学习,把有效的时间和精力花在点子上。DISCREET公司自从开发了3DSMAX到现在都没有出过中文版,在市面上所说的所谓中文版都是国人自己汉化的。以我个人多年的使用经验,我不建议大家用汉化的3DSMAX。不建议大家用汉化的几个方面原因:1、3DSMAX是个非常庞大复杂的软件,汉化会影响软件运行速度,造成更多不稳定因素。2、翻译的术语很多不规范,用词难以统一。3、很多公司使用的都是英文原版,从汉化版学起,会造成以后适应的问题。但对于国人,甚至连ABC都不懂几个的朋友,是否可以学好英文版的3DSMAX呢?答案是肯定,以我个人的学习和教学经验,主要也可以从以下几方面说明:1、对于如此庞大的软件,开始接触的时候应该针对性地学习,选择自己兴趣行业方面应用开始。一旦有了针对性,其实开始我们所接触到的命令就不是很多了。2、对于一些命令、术语,在学习应用的过程中,频繁的出现,点得多了,不记得单词也记得它的模样了,它的意思更不用说了。3、MAX的使用是有一定规律性的,而且也非常形象,就是

不太清楚命令的意思,通过操作看到实际变化,也知道它的大概意思。只要有一定的学习方法,多练习,英文版一点也不可怕。学习3DSMAX必须掌握的内容:三维空间能力的锻炼,熟练掌握视图、坐标与物体的位置关系。应该要做到放眼过去就可以判断物体的空间位置关系,可以随心所欲地控制物体的位置。这是最基本的要掌握的内容,如果掌握不好,下面的所有内容都会受到影响。有了设计基础和空间能力的朋友,掌握起来其实很简单;没有基础的朋友,只要有科学的学习和锻炼方法,也可以很快地掌握。这是我们课程培训里的第一步,一般人第一天就可以掌握了。基本的几个操作命令:选择、移动、旋转、缩放、镜像、对齐、阵列、视图工具,这些命令是最常用也是最基本的,几乎所有制作都用到。几个常用的三维和二维几何体的创建及参数,熟悉了之后,就掌握了3DSAMX的基本操作习惯。二维图案的编辑,这是非常重要的一部分内容,很多三维物体的生成和效果都是取决于二维图案。主要是用“Edit Spline”来实现。对于曲线图案的点、段、线编辑主要涉及到几个常用的命令:Attach Refine Outline Boonlean Trim Wed Fillet Chemfer等,熟练掌握这些子命令,才可以自如地编辑各类图案。几个常用必备的编辑命令:等,掌握了这些命令,制作效果的模型一般都可以应付了,此外还有些命令:等,也在效果图制作中时有用到。掌握了几个这样的命令,其他的都可以完全自行学习了,但是也不必要每个都了解,毕竟有一部分我们极少用到的。这也是我们之前提到的学习要分清楚方向和应用。不是眉毛胡子一把抓。材质、灯光方面:材质、灯光是不可分割的,

相关文档