搜档网
当前位置:搜档网 › OpenGL绘图 简单3D空间 3D漫游的实现

OpenGL绘图 简单3D空间 3D漫游的实现

OpenGL绘图 简单3D空间 3D漫游的实现
OpenGL绘图 简单3D空间 3D漫游的实现

主要参考了NEHE的Opengl教程

所有物体都是直接用代码画的,没有经过建模。

主要部分有详细注释。

适合刚接触图形学或OpenGL的新手。老鸟勿来。

部分效果图:

全部代码,VC6.0环境:

/*

主要实现简单的3D空间搭建,添加物体旋转效果,光照,纹理映射,3D漫游,雾化效果*/

#include // Header File For Windows

#include // Math Library Header File

#include // Header File For Standard Input/Output

#include // Header File For The OpenGL32 Library

#include // Header File For The GLu32 Library

#include // Header File For TheGlaux Library

HDC hDC=NULL; // Private GDI Device Context

HGLRC hRC=NULL; // Permanent Rendering Context

HWND hWnd=NULL; // Holds Our Window Handle

HINSTANCE hInstance; // Holds The Instance Of The Application

bool keys[256]; // Array Used For The Keyboard Routine

bool active=TRUE; // Window Active Flag Set To TRUE By Default

bool fullscreen=TRUE; // Fullscreen Flag Set To Fullscreen Mode By Default

bool blend; // Blending ON/OFF

bool bp; // B Pressed?

bool fp; // F Pressed?

bool gp; // G Pressed?

bool light;

boollp;

GLuint fogMode[]= { GL_EXP, GL_EXP2, GL_LINEAR }; // 雾气的三种模式

GLuint fogfilter = 0; // Which Fog Mode To Use

GLfloat fogColor[4] = {0.5f,0.5f,0.5f,1.0f}; // Fog Color

GLfloatwalkbias = 0;

GLfloatwalkbiasangle = 0;

GLfloatlookupdown = 0.0f;

float x;

float z;

GLfloateye[]={0.0f,0.0f,0.0f};

GLfloatlookat[]={0.0f,0.0f,0.0f};

GLfloat angle=-90.0;

GLfloat speed=0.5;

float PI=3.14159f;

GLuint filter; // Which Filter To Use

GLuint texture[7]; // 储存7个纹理

LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM); // Declaration For WndProc

AUX_RGBImageRec *LoadBMP(char *Filename) // 加载一个位图

{

FILE *File=NULL; // File Handle

if (!Filename) // Make Sure A Filename Was Given {

return NULL; // If Not Return NULL

}

File=fopen(Filename,"r"); // Check To See If The File Exists

if (File) // Does The File Exist?

{

fclose(File); // Close The Handle returnauxDIBImageLoad(Filename); // Load The Bitmap And Return A Pointer }

return NULL; // If Load Failed Return NULL

}

intLoadGLTextures() // 加载位图并将其转化为纹理{

int Status=FALSE; // Status Indicator

AUX_RGBImageRec *TextureImage[1]; // Create Storage Space For The Texture memset(TextureImage,0,sizeof(void *)*1); // Set The Pointer To NULL

if (TextureImage[0]=LoadBMP("Data/zhou.bmp")) //指定风扇轴的纹理

{

Status=TRUE; // Set The Status To TRUE

glGenTextures(1, &texture[0]);

glBindTexture(GL_TEXTURE_2D,texture[0]);

glTexImage2D(GL_TEXTURE_2D,0,3,TextureImage[0]->sizeX,TextureImage[0]->sizeY,0,GL_RGB,GL_ UNSIGNED_BYTE,TextureImage[0]->data);

glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MIN_FILTER,GL_LINEAR);

glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MAG_FILTER,GL_LINEAR);

}

if(TextureImage[0]=LoadBMP("Data/yepian.bmp")) //指定风扇叶的纹理

{

Status=TRUE;

glGenTextures(1,&texture[1]);

glBindTexture(GL_TEXTURE_2D,texture[1]);

glTexImage2D(GL_TEXTURE_2D,0,3,TextureImage[0]->sizeX,TextureImage[0]->sizeY,0,GL_RG B,GL_UNSIGNED_BYTE,TextureImage[0]->data);

glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MIN_FILTER,GL_LINEAR);

glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MAG_FILTER,GL_LINEAR);

}

if(TextureImage[0]=LoadBMP("Data/qiang.bmp")) //指定左右墙壁的纹理

{

Status=TRUE;

glGenTextures(1,&texture[2]);

glBindTexture(GL_TEXTURE_2D,texture[2]);

glTexImage2D(GL_TEXTURE_2D,0,3,TextureImage[0]->sizeX,TextureImage[0]->sizeY,0,GL_RGB,GL_ UNSIGNED_BYTE,TextureImage[0]->data);

glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MIN_FILTER,GL_LINEAR);

glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MAG_FILTER,GL_LINEAR);

}

if(TextureImage[0]=LoadBMP("Data/diban.bmp")) //指定地板的纹理

{

Status=TRUE;

glGenTextures(1,&texture[3]);

glBindTexture(GL_TEXTURE_2D,texture[3]);

glTexImage2D(GL_TEXTURE_2D,0,3,TextureImage[0]->sizeX,TextureImage[0]->sizeY,0,GL_RGB,GL_ UNSIGNED_BYTE,TextureImage[0]->data);

glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MIN_FILTER,GL_LINEAR);

glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MAG_FILTER,GL_LINEAR);

}

if(TextureImage[0]=LoadBMP("Data/tianhuaban.bmp")) //指定天花板的纹理

{

Status=TRUE;

glGenTextures(1,&texture[4]);

glBindTexture(GL_TEXTURE_2D,texture[4]);

glTexImage2D(GL_TEXTURE_2D,0,3,TextureImage[0]->sizeX,TextureImage[0]->sizeY,0,GL_RGB,GL_ UNSIGNED_BYTE,TextureImage[0]->data);

glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MIN_FILTER,GL_LINEAR);

glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MAG_FILTER,GL_LINEAR);

}

if(TextureImage[0]=LoadBMP("Data/qiang2.bmp")) //指定对面墙的纹理

{

Status=TRUE;

glGenTextures(1,&texture[5]);

glBindTexture(GL_TEXTURE_2D,texture[5]);

glTexImage2D(GL_TEXTURE_2D,0,3,TextureImage[0]->sizeX,TextureImage[0]->sizeY,0,GL_RGB,GL_ UNSIGNED_BYTE,TextureImage[0]->data);

glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MIN_FILTER,GL_LINEAR);

glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MAG_FILTER,GL_LINEAR);

}

if(TextureImage[0]=LoadBMP("Data/shafa.bmp")) //指定沙发的纹理

{

Status=TRUE;

glGenTextures(1,&texture[6]);

glBindTexture(GL_TEXTURE_2D,texture[6]);

glTexImage2D(GL_TEXTURE_2D,0,3,TextureImage[0]->sizeX,TextureImage[0]->sizeY,0,GL_RGB,GL_ UNSIGNED_BYTE,TextureImage[0]->data);

glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MIN_FILTER,GL_LINEAR);

glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MAG_FILTER,GL_LINEAR);

}

if (TextureImage[0]) // If Texture Exists

{

if (TextureImage[0]->data) // If Texture Image Exists

{

free(TextureImage[0]->data); // Free The Texture Image Memory

}

free(TextureImage[0]); // Free The Image Structure

}

return Status; // Return The Status

}

GLvoidReSizeGLScene(GLsizei width, GLsizei height) // Resize And Initialize The GL Window

{

if (height==0) // Prevent A Divide By Zero By {

height=1; // Making Height Equal One }

glViewport(0,0,width,height); // Reset The Current Viewport

glMatrixMode(GL_PROJECTION); // Select The Projection Matrix glLoadIdentity(); // Reset The Projection Matrix

// Calculate The Aspect Ratio Of The Window

gluPerspective(45.0f,(GLfloat)width/(GLfloat)height,0.1f,120.0f);

glMatrixMode(GL_MODELVIEW); // Select The Modelview Matrix

glLoadIdentity(); // Reset The Modelview Matrix }

//设置0—6号光源位置

GLfloat sun_light_position0[] = {0.0f, -5.0f, 2.0f, 1.0f};

GLfloat sun_light_position1[] = {0.0f, 7.0f, 2.0f, 1.0f};

GLfloat sun_light_position2[] = {-10.0f, -5.0f, -30.0f, 1.0f};

GLfloat sun_light_position3[] = {10.0f, 7.0f, -30.0f, 1.0f};

GLfloat sun_light_position4[] = {10.0f, 5.0f, -50.0f, 1.0f};

GLfloat sun_light_position5[] = {-10.0f, -5.0f, -50.0f, 1.0f};

GLfloatsun_light_ambient[] = {0.5f, 0.5f, 0.5f, 1.0f}; //环境光

GLfloatsun_light_diffuse[] = {1.0f, 1.0f, 1.0f, 1.0f}; //漫射光

GLfloatsun_light_specular[] = {1.0f, 1.0f, 1.0f, 1.0f}; //反射光

intInitGL(GLvoid) // 开始对OpenGL进行所有的设置

{

if (!LoadGLTextures()) // Jump To Texture Loading Routine

{

return FALSE; // If Texture Didn't Load Return FALSE

}

glEnable(GL_TEXTURE_2D); // 开启纹理映射

glBlendFunc(GL_SRC_ALPHA,GL_ONE); // Set The Blending Function For Translucency

glClearColor(0.0f, 0.0f, 0.0f, 0.0f); // 清理背景颜色为黑色

glClearDepth(1.0); // 开启清理深度缓存

glHint(GL_PERSPECTIVE_CORRECTION_HINT,GL_NICEST); //透视修正

glLightfv(GL_LIGHT0, GL_POSITION, sun_light_position0); //0号光源

glLightfv(GL_LIGHT0, GL_AMBIENT, sun_light_ambient);

glLightfv(GL_LIGHT0, GL_DIFFUSE, sun_light_diffuse);

glLightfv(GL_LIGHT0, GL_SPECULAR, sun_light_specular);

glLightfv(GL_LIGHT1, GL_POSITION, sun_light_position1); //1号光源

glLightfv(GL_LIGHT1, GL_AMBIENT, sun_light_ambient);

glLightfv(GL_LIGHT1, GL_DIFFUSE, sun_light_diffuse);

glLightfv(GL_LIGHT1, GL_SPECULAR, sun_light_specular);

glLightfv(GL_LIGHT2, GL_POSITION, sun_light_position2); //2号光源

glLightfv(GL_LIGHT2, GL_AMBIENT, sun_light_ambient);

glLightfv(GL_LIGHT2, GL_DIFFUSE, sun_light_diffuse);

glLightfv(GL_LIGHT2, GL_SPECULAR, sun_light_specular);

glLightfv(GL_LIGHT3, GL_POSITION, sun_light_position3); //3号光源

glLightfv(GL_LIGHT3, GL_AMBIENT, sun_light_ambient);

glLightfv(GL_LIGHT3, GL_DIFFUSE, sun_light_diffuse);

glLightfv(GL_LIGHT3, GL_SPECULAR, sun_light_specular);

glLightfv(GL_LIGHT4, GL_POSITION, sun_light_position4); //4号光源

glLightfv(GL_LIGHT4, GL_AMBIENT, sun_light_ambient);

glLightfv(GL_LIGHT4, GL_DIFFUSE, sun_light_diffuse);

glLightfv(GL_LIGHT4, GL_SPECULAR, sun_light_specular);

glLightfv(GL_LIGHT5, GL_POSITION, sun_light_position5); //5号光源

glLightfv(GL_LIGHT5, GL_AMBIENT, sun_light_ambient);

glLightfv(GL_LIGHT5, GL_DIFFUSE, sun_light_diffuse);

glLightfv(GL_LIGHT5, GL_SPECULAR, sun_light_specular);

glEnable(GL_LIGHTING); //启用光源

glEnable(GL_LIGHT0); //启用0号光源

glEnable(GL_LIGHT1); //启用1号光源

glEnable(GL_LIGHT2);

glEnable(GL_LIGHT3);

glEnable(GL_LIGHT4);

glEnable(GL_LIGHT5);

glFogi(GL_FOG_MODE, fogMode[fogfilter]); // Fog Mode

glFogfv(GL_FOG_COLOR, fogColor); // Set Fog Color

glFogf(GL_FOG_DENSITY, 0.1f); // 雾气的浓度

glHint(GL_FOG_HINT, GL_DONT_CARE); // 系统如何计算雾气

glFogf(GL_FOG_START, -10.0f); // 雾气的开始位置

glFogf(GL_FOG_END, -58.0f); // 雾气的结束位置

glEnable(GL_FOG);

return TRUE; // Initialization Went OK

}

void DrawGLfengshanzhou() //画一个四边形作为风扇轴

{

glBindTexture(GL_TEXTURE_2D, texture[0]); //绑定0号纹理,即风扇轴的纹理

glBegin(GL_QUADS); //画四边形

glNormal3f( 0.0f, 0.0f, 1.0f); //设置法向量

glTexCoord2f(0.0f, 0.0f); glVertex3f(-0.1f, -2.5f, 0.0f); //纹理和四边形左下坐标

glTexCoord2f(1.0f, 0.0f); glVertex3f( 0.1f, -2.5f, 0.0f); //纹理和四边形右下坐标

glTexCoord2f(1.0f, 1.0f); glVertex3f( 0.1f, 2.5f, 0.0f); //纹理和四边形右上坐标

glTexCoord2f(0.0f, 1.0f); glVertex3f(-0.1f, 2.5f, 0.0f); //纹理和四边形左上坐标

glEnd();

}

void DrawGLfengshanye() //画一个四边形作为风扇叶片

{

glBindTexture(GL_TEXTURE_2D, texture[1]); //绑定1号纹理,即叶片的纹理

glBegin(GL_QUADS);

glNormal3f(0.0f,1.0f,0.0f);

glTexCoord2f(0.0f, 0.0f);glVertex3f( 4.0f, 0.0f, 1.0f);

glTexCoord2f(1.0f, 0.0f);glVertex3f(-4.0f, 0.0f, 1.0f);

glTexCoord2f(1.0f, 1.0f);glVertex3f(-4.0f, 0.0f, -1.0f);

glTexCoord2f(0.0f, 1.0f);glVertex3f( 4.0f, 0.0f, -1.0f);

glEnd();

}

void DrawGLfengshan(GLfloat x) //画风扇,由柱和叶片组合而成,有一个浮点型参数,代表旋转增量

{

glPushMatrix();

glTranslatef(0.0,2.5f,0.0); //轴长5.0,开始在中心原点,所以先向上平移2.5 DrawGLfengshanzhou(); //画风扇轴

glPopMatrix();

glPushMatrix();

glRotatef(x,0.0f,1.0f,0.0f); //使风扇叶片绕Y轴旋转,x表示旋转增量

glPushMatrix();

glTranslatef(4.0f,0.0f,0.0f); //风扇叶长8.0,开始在中心原点,所以先向右平移4.0

DrawGLfengshanye(); //画第一个叶片

glPopMatrix();

glPushMatrix();

glRotatef(120,0.0f,1.0f,0.0f); //旋转120度

glTranslatef(4.0f,0.0f,0.0f); //注意:编码时变换的顺序和实际变换的顺序刚好相反。实际是先平移,再旋转。所以代码表现是先旋转,再平移

DrawGLfengshanye(); //画第二个叶片

glPopMatrix();

glPushMatrix();

glRotatef(240,0.0f,1.0f,0.0f); //旋转240度

glTranslatef(4.0f,0.0f,0.0f);

DrawGLfengshanye(); //画第三个叶片

glPopMatrix();

glPopMatrix();

}

void DrawGLshafa() //画一个立方体表示沙发

{

glBindTexture(GL_TEXTURE_2D, texture[6]);

glBegin(GL_QUADS);

// 画后面,按逆时针画

glNormal3f( 0.0f, 0.0f,1.0f);

glTexCoord2f(0.0f, 0.0f); glVertex3f(-1.0f, -1.0f, -1.0f);

glTexCoord2f(0.0f, 1.0f); glVertex3f(-1.0f, 1.0f, -1.0f);

glTexCoord2f(1.0f, 1.0f); glVertex3f( 1.0f, 1.0f, -1.0f);

glTexCoord2f(1.0f, 0.0f); glVertex3f( 1.0f, -1.0f, -1.0f);

// 画顶面

glNormal3f( 0.0f, -1.0f, 0.0f);

glTexCoord2f(0.0f, 0.0f); glVertex3f(-1.0f, 1.0f, -1.0f);

glTexCoord2f(0.0f, 1.0f); glVertex3f(-1.0f, 1.0f, 1.0f);

glTexCoord2f(1.0f, 1.0f); glVertex3f( 1.0f, 1.0f, 1.0f);

glTexCoord2f(1.0f, 0.0f); glVertex3f( 1.0f, 1.0f, -1.0f);

// 画底面

glNormal3f( 0.0f,1.0f, 0.0f);

glTexCoord2f(1.0f, 1.0f); glVertex3f(-1.0f, -1.0f, -1.0f);

glTexCoord2f(0.0f, 1.0f); glVertex3f( 1.0f, -1.0f, -1.0f);

glTexCoord2f(0.0f, 0.0f); glVertex3f( 1.0f, -1.0f, 1.0f);

glTexCoord2f(1.0f, 0.0f); glVertex3f(-1.0f, -1.0f, 1.0f);

// 画右面

glNormal3f( -1.0f, 0.0f, 0.0f);

glTexCoord2f(1.0f, 0.0f); glVertex3f( 1.0f, -1.0f, -1.0f);

glTexCoord2f(1.0f, 1.0f); glVertex3f( 1.0f, 1.0f, -1.0f);

glTexCoord2f(0.0f, 1.0f); glVertex3f( 1.0f, 1.0f, 1.0f);

glTexCoord2f(0.0f, 0.0f); glVertex3f( 1.0f, -1.0f, 1.0f);

// 画左面

glNormal3f(1.0f, 0.0f, 0.0f);

glTexCoord2f(0.0f, 0.0f); glVertex3f(-1.0f, -1.0f, -1.0f);

glTexCoord2f(1.0f, 0.0f); glVertex3f(-1.0f, -1.0f, 1.0f);

glTexCoord2f(1.0f, 1.0f); glVertex3f(-1.0f, 1.0f, 1.0f);

glTexCoord2f(0.0f, 1.0f); glVertex3f(-1.0f, 1.0f, -1.0f);

// 画前面

glNormal3f( 0.0f, 0.0f, -1.0f);

glTexCoord2f(0.0f, 0.0f); glVertex3f(-1.0f, -1.0f, 1.0f);

glTexCoord2f(1.0f, 0.0f); glVertex3f( 1.0f, -1.0f, 1.0f);

glTexCoord2f(1.0f, 1.0f); glVertex3f( 1.0f, 1.0f, 1.0f);

glTexCoord2f(0.0f, 1.0f); glVertex3f(-1.0f, 1.0f, 1.0f);

glEnd();

}

GLfloat rotate0=0; //风扇的旋转增量

GLfloat rotate1=0;

GLfloat rotate2=0;

GLfloat rotate3=0;

GLfloat rotate4=0;

intDrawGLScene(GLvoid) // 开始在屏幕上显示{

glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); // 清屏和清理深度缓存

if (keys[VK_LEFT]) //按下左方向键向左旋转

{

angle-=1.0;

}

if (keys[VK_RIGHT]) //按下有方向键向右旋转

{

angle+=1.0;

}

//沿视线方向移动

float rad=(PI*angle/180.0);

if(keys['A']) //按下A键向左移动

{

eye[0] += (float)sin(rad) * speed;

eye[2] -= (float)cos(rad) * speed;

}

if(keys['D']) //按下D键向右移动

{

eye[0] -= (float)sin(rad) * speed;

eye[2] += (float)cos(rad) * speed;

}

if (keys['W']) //按下W键向前移动

{

eye[0]+=(float)cos(rad)*speed;

eye[2]+=(float)sin(rad)*speed;

}

if (keys['S']) //按下S键向后移动

{

eye[0]-=(float)cos(rad)*speed;

eye[2]-=(float)sin(rad)*speed;

}

if (keys['Z']) //按下Z键沿边界自动漫游

{

while(-24<=eye[0] && eye[0]<=24 && -79<=eye[2] && eye[2]<=-1) {

angle+=0.2;

eye[0] += (float)sin(rad) * speed;

eye[2] -= (float)cos(rad) * speed;

}

}

//简单的碰撞检测,使之不能穿墙而过

if(eye[0]>=24)

eye[0]=24;

if(eye[0]<=-24)

eye[0]=-24;

if(eye[2]>=-1)

eye[2]=-1;

if(eye[2]<=-79)

eye[2]=-79;

if (keys[VK_UP]) //按下上方向键,向上望

{

lookat[1]+=0.5;

}

if (keys[VK_DOWN]) //按下下方向键,向下望

{

lookat[1]-=0.5;

}

//观察点

lookat[0]=float(eye[0]+100*cos(rad));

lookat[2]=float(eye[2]+100*sin(rad));

glLoadIdentity(); // 重置观察模型矩阵

gluLookAt(eye[0],eye[1],eye[2],lookat[0],lookat[1],lookat[2],0.0,1.0,0.0); //调用gluLookAt 实现3D漫游

glPushMatrix();

rotate0+=1; //设置旋转速率

if(rotate0>360) rotate0=0;

rotate1+=0.5;

if(rotate1>360) rotate1=0;

rotate2+=2;

if(rotate2>360) rotate2=0;

rotate3+=1.5;

if(rotate3>360) rotate3=0;

rotate4+=0.1;

if(rotate4>360) rotate4=0;

//用五个四边形构建一个3D空间

glPushMatrix(); //画天花板

glBindTexture(GL_TEXTURE_2D, texture[4]); // 绑定天花板纹理

glBegin(GL_QUADS);

glNormal3f( 0.0f, 1.0f, 0.0f);

glTexCoord2f(0.0f, 0.0f); glVertex3f(25.0f, 10.0f, -80.0f);

glTexCoord2f(1.0f, 0.0f); glVertex3f(-25.0f, 10.0f, -80.0f);

glTexCoord2f(1.0f, 1.0f); glVertex3f( -25.0f, 10.0f, 0.0f);

glEnd();

glPopMatrix();

glPushMatrix(); //画地板

glBindTexture(GL_TEXTURE_2D, texture[3]);

glBegin(GL_QUADS);

glNormal3f( 0.0f, -1.0f, 0.0f);

glTexCoord2f(0.0f, 0.0f); glVertex3f(-25.0f, -10.0f, -80.0f);

glTexCoord2f(1.0f, 0.0f); glVertex3f(25.0f, -10.0f, -80.0f);

glTexCoord2f(1.0f, 1.0f); glVertex3f( 25.0f, -10.0f, 0.0f);

glTexCoord2f(0.0f, 1.0f); glVertex3f( -25.0f, -10.0f, 0.0f); glEnd();

glPopMatrix();

glPushMatrix(); //画左面墙壁

glBindTexture(GL_TEXTURE_2D, texture[2]);

glBegin(GL_QUADS);

glNormal3f( -1.0f, 0.0f, 0.0f);

glTexCoord2f(0.0f, 0.0f); glVertex3f(-25.0f, -10.0f, -80.0f);

glTexCoord2f(1.0f, 0.0f); glVertex3f(-25.0f, -10.0f, 0.0f);

glTexCoord2f(1.0f, 1.0f); glVertex3f(-25.0f, 10.0f, 0.0f);

glTexCoord2f(0.0f, 1.0f); glVertex3f(-25.0f, 10.0f, -80.0f); glEnd();

glPopMatrix();

glPushMatrix(); //画右面墙壁

glBindTexture(GL_TEXTURE_2D, texture[2]);

glBegin(GL_QUADS);

glNormal3f( 1.0f, 0.0f, 0.0f);

glTexCoord2f(0.0f, 0.0f); glVertex3f( 25.0f, -10.0f, 0.0f);

glTexCoord2f(1.0f, 0.0f); glVertex3f( 25.0f, -10.0f, -80.0f);

glTexCoord2f(1.0f, 1.0f); glVertex3f( 25.0f, 10.0f, -80.0f);

glTexCoord2f(0.0f, 1.0f); glVertex3f( 25.0f, 10.0f, 0.0f); glEnd();

glPopMatrix();

glPushMatrix(); //画面对的墙壁

glBindTexture(GL_TEXTURE_2D, texture[5]);

glBegin(GL_QUADS);

glNormal3f( 0.0f, 0.0f, -1.0f);

glTexCoord2f(0.0f, 0.0f); glVertex3f(25.0f, -10.0f, -80.0f);

glTexCoord2f(1.0f, 0.0f); glVertex3f(-25.0f, -10.0f, -80.0f);

glTexCoord2f(1.0f, 1.0f); glVertex3f( -25.0f, 10.0f, -80.0f);

glEnd();

glPopMatrix();

glPushMatrix(); //画正面的墙壁

glBindTexture(GL_TEXTURE_2D, texture[5]);

glBegin(GL_QUADS);

glNormal3f( 0.0f, 0.0f, 1.0f);

glTexCoord2f(0.0f, 0.0f); glVertex3f(-25.0f, -10.0f, 0.0f);

glTexCoord2f(1.0f, 0.0f); glVertex3f(25.0f, -10.0f, 0.0f);

glTexCoord2f(1.0f, 1.0f); glVertex3f( 25.0f, 10.0f, 0.0f);

glTexCoord2f(0.0f, 1.0f); glVertex3f( -25.0f, 10.0f, 0.0f); glEnd();

glPopMatrix();

//空间搭建完毕,现在开始画沙发

glPushMatrix();

glTranslatef(10,-8.0f,-40);

DrawGLshafa(); //调用画沙发函数画个沙发glPopMatrix();

glPushMatrix();

glTranslatef(-10,-8.0f,-40);

DrawGLshafa();

glPopMatrix();

glPushMatrix();

glTranslatef(10,-8.0f,-50);

DrawGLshafa();

glPopMatrix();

glPushMatrix();

glTranslatef(-10,-8.0f,-50);

DrawGLshafa();

glPopMatrix();

glPushMatrix();

glTranslatef(10,-8.0f,-30);

DrawGLshafa();

glPopMatrix();

glPushMatrix();

glTranslatef(-10,-8.0f,-30);

DrawGLshafa();

glPushMatrix();

glTranslatef(10,-8.0f,-20);

DrawGLshafa();

glPopMatrix();

glPushMatrix();

glTranslatef(-10,-8.0f,-20);

DrawGLshafa();

glPopMatrix();

glPushMatrix();

glTranslatef(-10,-8.0f,-10);

DrawGLshafa();

glPopMatrix();

glPushMatrix();

glTranslatef(10,-8.0f,-10);

DrawGLshafa();

glPopMatrix();

//现在开始画风扇

glPushMatrix();

glTranslatef(0,4.0f,-25);

DrawGLfengshan(rotate0); //调用画风扇函数画个风扇glPopMatrix();

//第二个风扇

glPushMatrix();

glTranslatef(10,5.0f,-50);

DrawGLfengshan(rotate1);

glPopMatrix();

//第三个风扇

glPushMatrix();

glTranslatef(-10,5.0f,-50);

DrawGLfengshan(rotate2);

glPopMatrix();

glPushMatrix();

glTranslatef(-15,7.0f,-20);

DrawGLfengshan(rotate3);

glPushMatrix();

glTranslatef(15,7.0f,-20);

DrawGLfengshan(rotate4);

glPopMatrix();

glPopMatrix();

return TRUE; // Everything Went OK

}

GLvoidKillGLWindow(GLvoid) // Properly Kill The Window {

if (fullscreen) // Are We In Fullscreen Mode?

{

ChangeDisplaySettings(NULL,0); // If So Switch Back To The Desktop

ShowCursor(TRUE); // Show Mouse Pointer }

if (hRC) // Do We Have A Rendering Context?

{

if (!wglMakeCurrent(NULL,NULL)) // Are We Able To Release The DC And RC Contexts?

{

MessageBox(NULL,"Release Of DC And RC Failed.","SHUTDOWN ERROR",MB_OK | MB_ICONINFORMATION);

}

if (!wglDeleteContext(hRC)) // Are We Able To Delete The RC?

{

MessageBox(NULL,"Release Rendering Context Failed.","SHUTDOWN ERROR",MB_OK | MB_ICONINFORMATION);

}

hRC=NULL; // Set RC To NULL }

if (hDC&& !ReleaseDC(hWnd,hDC)) // Are We Able To Release The DC

{

MessageBox(NULL,"Release Device Context Failed.","SHUTDOWN ERROR",MB_OK |

MB_ICONINFORMATION);

hDC=NULL; // Set DC To NULL }

if (hWnd&& !DestroyWindow(hWnd)) // Are We Able To Destroy The Window?

{

MessageBox(NULL,"Could Not Release hWnd.","SHUTDOWN ERROR",MB_OK | MB_ICONINFORMATION);

hWnd=NULL; // Set hWnd To NULL }

if (!UnregisterClass("OpenGL",hInstance)) // Are We Able To Unregister Class {

MessageBox(NULL,"Could Not Unregister Class.","SHUTDOWN ERROR",MB_OK | MB_ICONINFORMATION);

hInstance=NULL; // Set hInstance To NULL }

}

/* This Code Creates Our OpenGL Window. Parameters Are: *

* title - Title To Appear At The Top Of The Window *

* width - Width Of The GL Window Or Fullscreen Mode *

* height - Height Of The GL Window Or Fullscreen Mode *

* bits - Number Of Bits To Use For Color (8/16/24/32) *

* fullscreenflag - Use Fullscreen Mode (TRUE) Or Windowed Mode (FALSE) */

BOOL CreateGLWindow(char* title, int width, int height, int bits, boolfullscreenflag)

{

GLuint PixelFormat; // Holds The Results After Searching For A Match WNDCLASS wc; // Windows Class Structure

DWORD dwExStyle; // Window Extended Style

DWORD dwStyle; // Window Style

RECT WindowRect; // Grabs Rectangle Upper Left / Lower Right Values

WindowRect.left=(long)0; // Set Left Value To 0

WindowRect.right=(long)width; // Set Right Value To Requested Width

WindowRect.top=(long)0; // Set Top Value To 0

WindowRect.bottom=(long)height; // Set Bottom Value To Requested Height

fullscreen=fullscreenflag; // Set The Global Fullscreen Flag

hInstance = GetModuleHandle(NULL); // Grab An Instance For Our Window

wc.style = CS_HREDRAW | CS_VREDRAW | CS_OWNDC; // Redraw On Size, And Own DC For Window.

wc.lpfnWndProc = (WNDPROC) WndProc; // WndProc Handles Messages

wc.cbClsExtra = 0; // No Extra Window Data wc.cbWndExtra = 0; // No Extra Window Data

wc.hInstance = hInstance; // Set The Instance

wc.hIcon = LoadIcon(NULL, IDI_WINLOGO); // Load The Default Icon wc.hCursor = LoadCursor(NULL, IDC_ARROW); // Load The Arrow Pointer

wc.hbrBackground = NULL; // No Background Required For GL

wc.lpszMenuName = NULL; // We Don't Want A Menu

wc.lpszClassName = "OpenGL"; // Set The Class Name

if (!RegisterClass(&wc)) // Attempt To Register The Window Class

{

MessageBox(NULL,"Failed To Register The Window Class.","ERROR",MB_OK|MB_ICONEXCLAMATION);

return FALSE; // Return FALSE }

if (fullscreen) // Attempt Fullscreen Mode?

{

DEVMODE dmScreenSettings; // Device Mode

memset(&dmScreenSettings,0,sizeof(dmScreenSettings)); // Makes Sure Memory's Cleared

dmScreenSettings.dmSize=sizeof(dmScreenSettings); // Size Of The Devmode Structure

dmScreenSettings.dmPelsWidth = width; // Selected Screen Width

dmScreenSettings.dmPelsHeight = height; // Selected Screen Height

dmScreenSettings.dmBitsPerPel = bits; // Selected Bits Per Pixel

dmScreenSettings.dmFields=DM_BITSPERPEL|DM_PELSWIDTH|DM_PELSHEIGHT;

// Try To Set Selected Mode And Get Results. NOTE: CDS_FULLSCREEN Gets Rid Of Start Bar.

if

(ChangeDisplaySettings(&dmScreenSettings,CDS_FULLSCREEN)!=DISP_CHANGE_SUCCESSFUL) {

// If The Mode Fails, Offer Two Options. Quit Or Use Windowed Mode.

if (MessageBox(NULL,"The Requested Fullscreen Mode Is Not Supported By\nYour Video Card. Use Windowed Mode Instead?","NeHe GL",MB_YESNO|MB_ICONEXCLAMATION)==IDYES)

{

fullscreen=FALSE; // Windowed Mode Selected. Fullscreen = FALSE }

else

{

// Pop Up A Message Box Letting User Know The Program Is Closing.

MessageBox(NULL,"Program Will Now Close.","ERROR",MB_OK|MB_ICONSTOP);

return FALSE; // Return FALSE }

}

}

if (fullscreen) // Are We Still In Fullscreen Mode?

{

dwExStyle=WS_EX_APPWINDOW; // Window Extended Style

dwStyle=WS_POPUP; // Windows Style

ShowCursor(FALSE); // Hide Mouse Pointer

}

else

{

dwExStyle=WS_EX_APPWINDOW | WS_EX_WINDOWEDGE; // Window Extended Style

dwStyle=WS_OVERLAPPEDWINDOW; // Windows Style }

AdjustWindowRectEx(&WindowRect, dwStyle, FALSE, dwExStyle); // Adjust Window To True Requested Size

// Create The Window

if (!(hWnd=CreateWindowEx( d wExStyle, // Extended Style For The Window

"OpenGL", // Class Name

title, // Window Title

dwStyle | // Defined Window Style

WS_CLIPSIBLINGS | // Required Window Style

WS_CLIPCHILDREN, // Required Window Style

0, 0, // Window Position

WindowRect.right-WindowRect.left, // Calculate Window Width

WindowRect.bottom-WindowRect.top, // Calculate Window Height

NULL, // No Parent Window

NULL, // No Menu

hInstance, // Instance

NULL))) // Dont Pass Anything To WM_CREATE

{

KillGLWindow(); // Reset The Display

MessageBox(NULL,"Window Creation Error.","ERROR",MB_OK|MB_ICONEXCLAMATION);

return FALSE; // Return FALSE

}

static PIXELFORMATDESCRIPTOR pfd= // pfd Tells Windows How We Want Things To Be

{

sizeof(PIXELFORMATDESCRIPTOR), // Size Of This Pixel Format Descriptor

1, // Version Number

PFD_DRAW_TO_WINDOW | // Format Must Support Window

PFD_SUPPORT_OPENGL | // Format Must Support OpenGL

PFD_DOUBLEBUFFER, // Must Support Double Buffering

PFD_TYPE_RGBA, // Request An RGBA Format

bits, // Select Our Color Depth

0, 0, 0, 0, 0, 0, // Color Bits Ignored

0, // No Alpha Buffer

0, // Shift Bit Ignored

0, // No Accumulation Buffer

0, 0, 0, 0, // Accumulation Bits Ignored

16, // 16Bit Z-Buffer (Depth Buffer)

0, // No Stencil Buffer

0, // No Auxiliary Buffer

PFD_MAIN_PLANE, // Main Drawing Layer

0, // Reserved

SU导入3D的流程

Sketchup建模及导入3D的方法及选项设置 用su建模,一是推敲方案,二是在方案推敲完成导入3D后进入后期的渲染,出效果图。 SU建模注意:为了加快建模速度必须设定自己的一套快捷键,在建模的过程中必须每个体量编辑组件,以便以后的修改。为了能导入3D中进行渲染,Sketchup的模型必须面是统一 的,系统默认白色的是正面,蓝色的是反面,就必须把正面朝外反面朝里,要不然在3d里面反面是显示不出来。 第一,第二就是Sketchup 一定是专业版,只有它才能导出3ds格式和dwg格式。 第二,在Sketchup中把材质都赋好,记得一点是不要用Sketchup默认的材质,要新建材质赋你有的jpg格式贴图,这样在3d里面才能继续调整贴图,Sketchup默认的贴 图在3d里可是不认。 第三,就是导出了,在Sketchup里面:文件,导出,3d模型,第一个下拉菜单选所有图层,然后中间的全部都不要选择,最后一个把单位改成毫米就可以了。第一个不动直接确定,第二个点否,现在导进来了,打灯光,打摄像机,调Vary选项。 第四,在Sketchup中赋好的材质,先把模型选中然后在编辑菜单中选Poly Select (可编辑网格选择),下面有几个选项选倒数第二个Polygon,然后在Select By Material ID里面输入相应的材质ID,被选中的材质就会变成红色,这样就可以进行材质的调 整了。 第五,SU导出3DS格式说明:1、Sin gel Object勾选此选项时,整个场景将合并成一个物体被输出,在SketchUP中建立的群组和组件将不能被单独进行操作,在场景中线面数很大的情况 下有可能不能完成输出;(这视情况而定) 2、Objects By Geometry 此选项将以群组和组件为单位输出物体,SketchUP 最表面一层的群组和组件被保留为单独的物体,可以在max中进行单独灵活的各种 编辑,推荐使用。缺点是每一个群组和组件都会输出一个自身的多重子材质 3、Output Texture Maps 如果不勾选,输出材质中将不包含贴图信息;贴图 文件路径需要在max里添加,建议将所有贴图复制到max模型文件所在工作目录, 这样就不会出现找不到贴图的错误信息 4、Output 2-Sides 输出双面:一般情况下不需要,会额外增加模型量;但是 在SketchUP建模阶段必须保证面法线正反的正确性,否则反面在max里无法显示, 产生丢面现象。Materiar和Geometry分别以材质和物体产生双面。 5、Output Standalong Edges 输出边线,对于max 不必要。 6、Use “Color By Layer ” Mater用I层的颜色作为材质输出,是以层颜色进行管 理的材质,需要在建模起始阶段就规划好的材质管理方式,物体(或面)将以所在的层的颜色为自身的材质。因为SketchUP里组件和层是参插的,在组件具有复合 材质时好像不易管理。 7、Gen erate Cameras 产生相机,基本上每一个页面会产生一个相机,这个不用勾 选。

三维模型导入ADAMS的实用方法

三维模型导入ADAMS仿真的实用方法摘要:此文内容主要来源于 宋博士的博客(https://www.sodocs.net/doc/1b18278615.html,/doctorsongshaoyun)。 本文所提供的方法是现有ADAMS书籍上未曾提供的内容,是解决大家建模感觉繁琐的非常实用的方法。 下面谈谈我的一些经验:尽管ADAMS软件中提供了几何建模的工具,但相比现在成熟的三维专业设计CAD软件而言其功能非常薄弱。ADAMS/View提供的建模工具功能非常的原始,即使对于简单的几何模型,用户想直接在ADAMS/View中建立也需要非常熟练地掌握移动和旋转工作栅格才能实现,而对于复杂的机械装配模型,ADAMS/View基本无能为力,因此目前通常的做法是先用成熟三维设计软件(如CATIA,UG,Pro/E,Solidwork等)精确建立机械系统实体零件模型和虚拟装配模型,之后通过数据交换的方式(我一般使用parasolid格式)将模型导入到ADAMS软件中,根据实际情况抽象出相应的运动副添加适当的约束、驱动和负载等(此处在正确位置建立合适的Maker点很关键,对于不规则实体有时软件自动建立的cm点并非在仿真需要的地方,运动副位置设置错了容易导致仿真失败)建立起机械系统的虚拟样机,来模拟实际工况和真实运动情况。此外机械系统方面的仿真建议大家使用Adams/Machinery这个插件,可以极大的提高仿真效率。 欢迎访问我的新浪博客(https://www.sodocs.net/doc/1b18278615.html,/u/1774643737)。 基于SOLIDWORKS-ADAMS的机构动力学仿真对一个实际的机构做动力学仿真,是我们在机械设计实践中经常会遇到的的问题。一般我们会首先用某款三维软件(如SOLIDWORKS,SOLIDEDGE,PRO/E,UG,CATIA等)对所有零件进行建模,然后把零件组装成为装配体,接着把模型导入到机构动力学软件如ADAMS中进行动力学中仿真。 然而,从三维软件的装配模型导入到ADAMS中时,由于装配体中的零件很多,如果直接导入,会在ADAMS中出现许多零件,而其中许多零件之间并不存在相对运动,为了在ADAMS 中进行正确的仿真,就需要首先对没有相对运动的一系列零件之间建立固定副。对于简单的

DMAX模型导入到Unity3D的步骤

3DMAX模型导入到Unity3D的步骤 1、打开3DMAX,自定义-》单位设置,将系统单位和显示单位都设置为“厘米” 2、建立一个Polygon管状体,参数如下:内径20CM,外径30CM,高30CM 注:保证其坐标原点在0,0,0 3、选中模型右击鼠标转换为可编辑多边形。 多模型进行一些挤出操作。 4、开始导出模型。保持模型选中状态,点击左上角3DMAX图标菜单, 导出-》导出选定对象。导出格式为.FBX,名称必须为英文字母类, 跳出的选项框默认直接确定即可。 例如导出的名称为 5、接下来打开Unity3D,新建立一个项目。 因为是测试项目所以可不导入Unity提供的资源包 6、将之前在3DMAX里导出的模型复制到Unity项目所在文件夹中的Assets文件夹下。 Unity会自动刷新出资源并自动创建一个Materials材质文件夹。如下图示: 7、单击Tube资源,在旁边的Inspector视图中可以看到:Scale Factor的值 表示的比例

8、鼠标拖动Tube到场景中,保持选择状态,摁键盘“F”键,物体自动放大到场景最大 点。3DMAX模型导入到Unity3D的步骤完成。 9、在3DMAX里新建立一个圆柱,系统单位和显示单位仍为CM厘米,圆柱参数如下: 半径100cm,高100cm,模型中心在坐标原点,转换为可编辑多边形, 保存命名为。将复制到Unity项目的Assets文件夹下 10、拖动yuanzhu到主场景。接着在Unity里建立一个圆柱体 Unity里默认是直径1M,高1M的圆柱。我们之前在3DMAX里建立的圆柱半径100cm,导入到Unity后即直径是200cm了。 将Unity里建立的圆柱,Scale参数中的X和Z放大2倍,这个圆柱的半径才是100cm(直径200cm) 然后将从3DMAX里导入的圆柱与Unity里建立的圆柱比较:半径是一样大小的。 说明在3DMAX里建立对应到Unity的模型,系统单位和显示单位设置为“CM”最好。

通用的能力模型字典

胜任力分级素质词典(通用素质部分) 第一部分词典介绍 该分级素质词典是世界范围内迄今为止经透彻研究后最好的胜任力素质词典。它集二十多年素质研究之精华,在世界范围内的上乘、杰出者身上得到过验证,其有效性经历过多种经验式素质模式的不断确认。各素质的级别经不断修改,变得越来越明晰、越来越可靠、越来越有效。其中,所有的素质都已通过最严格的研究测试和专业标准测试。每一核心素质都在许多企业组织的管理者评估过程中得到了可靠地鉴别表现证实。 收录在该词典里的通用核心素质,标准系列共有18个素质,通常被用来推导出一个人的素质模式:即每一行为事件访谈都会用这18个素质进行分析。而真正透彻研究的模式往往皆包括这18个为一组的素质(也许以18个素质的改进版为一组)

第二部分通用素质(按英文字母顺序排列) 1.成就导向(ACH): 希望工作杰出或超出优秀标准。其标准可以是某个人自己过去的业绩(力求改进之);或一种客观衡量标准(只论结果);或比其他人做得更好(即竞争性);或某人自己设定的挑战性目标;或任何人从未做过的事(改革性)。因此一种独特的成就也可定为ACH。(是否考虑要满足并超过既定目标?为达所期好处肯冒一定风险?) 这种人: 1)要把工作做好:努力把工作做好或做对。也许有对浪费或低效率的受搓感(即抱怨所浪费的时间、表示想做得更好),却没有带来具体任何改进。 2)自创杰出衡量标准:面对他人强加的杰出标准,采用自己具体衡量结果的方法。也许表现为专注于某些新的或更确切的方法以达到管理目标。(那种对结果或业绩优秀衡 量标准有自然兴趣者需具体分析)。 3)业绩有改善:对某系统或自己个人工作方法作出具体改变以改进业绩(即把某事做得更好、更快、更省、更有效;改善其质量、客户满意度、精神面貌、收益),而没有 预先设定任何具体目标。(业绩的改进应该是明显的且可测量的。即使结果尚不知道或改进率低于所期望的,仍要计分。) 4)为达到有难度的目标而努力:“有难度”即仅有百分之50的机会达到目标、有百分之50的可能失败。其努力肯定是超常的,却又不时不实际或不可能的。或者,以最初 某基线业绩表现对照投入努力后的更高业绩表现:即“在我接手时,工作效率为20%,现在提高到了85%。”(如果目标不太难也不知达到与否,可作为2级计算分析作为于传统标准相竞争的证据。如果计为4级,那么一个人同样的行为或事件便不宜计为3。) 5)有做成本-效益分析:在仔细计算过投入和产出的基础上做决定、定先后或选定目标:对潜在利润、投资盈利率或成本效益分析做详细明确考虑。家对商业结果做分析。(计 算分析时,这人应:1)具体提到过成本和2)效益和3)基于成本效益考虑的决定。 6)明知有风险仍一往无前:为提高效益调动最大资源和/或时间(明知不一定成功),(即改进业绩,达到一个有大难度的目标,等)。如计算分析时为6级,应注意计算 低级的ACH作为证据以充分抓住访谈者ACH的深度及广度。 2.演绎思维(AT): 喜把事物拆分成小块小块来理解,或用步步推进的方法对事物进行解剖。演义思维包括对问题、局势等系统地、组织结构地理解;进而对不同特性或方面进行系统比较;理性地制定出先后对策;确定时间秩序,因果关系或如果这样便会那样的关系。(这人是否理解因果关系链?)

prescan 3D模型导入步骤

3D模型导入 一.把3D导入PreScan中有步骤: 1.从sketchup软件中导出目标模型文件 1)打开sketchup,右击“文件”——“3D模型库” ——“获取模型”,然后再弹出的模型库页面中 搜索目标模型; 2)选择目标文件并点击下载(保存为.dae格式,只有这个文件prescan才能识别)。 2.把下载下来的目标模型文件添加到prescan用户元素 库中 1)右击prescan上的“Tools”——“User Library Elments Wizard”; 2)弹出的菜单最上面是选择存放路径,下面的选项按钮点击“classic ULE”,然后点击“Add folder” 并对新生成的文件命名; 3)点击新生成的文件来激活对话框右边的“New Element”按钮并点击; 4)在弹出的对话框的第一页给文件命名以及选择元素类型并点击“next”; 5)在弹出的对话框的第二页给添加的心元素命名以及必要的描述并点击“next”; 6)在弹出的对话框的第三页选择第一步骤下载下

来的目标模型文件并点击“next”; 7)第四页是对目标模型进行尺寸设置,一般从sketchup中下载文件都已设置好,可以直接点 击“next”; 8)下面只要顺着点击“next”即可,最后点击“User Library Elments Wizard”对话框上的“refersh and close”就能在prescan的UL Elements中直接拖 拉该模型放置场景中。 注意:1)在3D模型库中下载的文件需有 textures.txt文件,不然导入的在3D viewer中看 到的模型将是一片漆黑。

Quest3D模型的导入教程

一、前期准备工作(本教程以3DSMax为建模工具作为使用参考) 1.使用3DSMax创作一个最简单的茶壶模式: 2.在File(文件)菜单栏中选择运行Export(输出)命令,然后在Select File to Export(选择输出文件)对话框中选择Quest3D公司自己开发支持的X文件格式,选定后点击"完成"按钮: 3.在"场景统计和文件选项"对话框中选择并完成相应的设置: 4.Quest3D公司为3DSMax开发的X文件输出插件会自动将模型保存为X文件,本实例中将文件名设置保存为teaport.X.

二、在Quest3D中导入模型: 1.双击快捷图标运行Quest3D程序,在File(文件)菜单栏中选择运行Import导入命令: 2.在Select File to Import(选择输入文件)对话框中选择teaport.x文件: 3.Quest3D在点击导入文件对话框中的"打开"按钮后会弹出X Object Importer Options(X对象导入选项)对话框,进行相应的载入类型和选项设置.完成设置后点击"OK"确认按钮:

4、在Load Channel Group(载入通道组合)警告提示框,用以确定文件名和文件类型,: 5、当Channel通道窗口中出现DX8 3D Object相应的模型结构关系图后,就完成了模型的导入任务: 三、在动画窗口正常显示3D模型 出现问题:当我们完成第二步骤的工作以后,却发现在动画窗口中看不到相应的模型,这就意味着在Run预览运行效果和打包输出后一无所见! 这可是一个及其严重的问题哟,怎么办呢,解决方法如下: 1.在template模板窗口中,拖动Quick Start中的ObjectInspectiong的链接到Channel通道窗口:

提取3D游戏模型的方法

提取3D游戏模型的方法 网络游戏工具【GameAssassin】是一个针对网络游戏和3D游戏的辅助工具,具有设置3D游戏的线框显示模式,截获3D游戏的模型贴图数据等功能,针对于网络游戏,此软件能够接获游戏所发出并且接受的网络消息,并且能够向服务器直接发送外部的自定义数据。 如果想截游戏模型,首先要到GA的官方下载相关软件和插件。 只需下载GA和导入MAX用的插件就可以。 首先是激活功能,这是必须做的一步,然后尽先一下简单的设置(如图) 再将游戏在任务栏上的完整名称输入到“自定义截取”中。然后在进入游戏。 切记是先运行GA再运行游戏,如果无法确认游戏的名称 可以在运行GA之前先运行游戏,记住游戏在任务栏上的名称 如果名称太长,显示不完整,可以查看任务管理器,确认后退出游戏。 在顺利进入游戏以后,我们会在屏幕的左上角看到“GA”两个彩色字母,这就说明在本游戏中GA运行成功,如果没有显示,就说明没有成功,就无法进行截取(如果不显示的话,就试着Alt+Tab切到GA主截面,选中游戏名称,点击“截取”,如果还不显示,可能就是操作步骤出现了错误)。如果没什么问题,就按下热键Alt+F7截取模型。 【建议在模型比较少的界面下截取,例如选人截面】

按下热键后,我们切到GA的主目录观察文件夹“魔兽世界”中是否已经生成OBJ模型文件,如果什么都没有,就再切回来,再按两遍热键。如果还没有OBJ文件,或是出现“非法操作”的话,那么退出GA,从新截取游戏。

如果没问题了,那么我们就进入模型观察器3D View中,将主人公的模型碎片从新组合,选择你认为是主人公身体一部分的模型,将其添加到组合物体中去。(如果在选取模型碎片文件时提示模型打开失败的话,那么建议你换个显卡。) 拼合好模型后,如果没问题的话,就将组合好的模型保存为列表文件

通用能力素质模型

通用能力素质模型 一、世界500 强能力素质模型同过对目前国际500 强企业员工能力素质分析与总结,共形成十六项通用能力,可以分为三个方面:分析判断、人际交往、工作态度,每个方面的能力又可细分如下: 1. 分析判断 1.1. 分析能力 1.2. 市场敏感度 1.3. 创造能力 1.4. 清晰的目的性 1.5. 学习能力 1.6. 结构化的思维能力 2. 人际交往 2.1. 领导力 2.2. 沟通影响力 2.3. 团队合作能力 2.4. 客户服务能力 3. 工作态度 3.1. 开拓能力 3.2. 诚信正直 3.3. 职业化的行为 3.4. 高效的工作能力

3.5. 计划与自我管理能力36充满工作激情 二、能力素质模型描述 1.分析判断 分析能力

在这个方面可能问及的问题包括(面试官一般将这些问题结合求职者个人情况 1. 2进行提问,并在求职者回答的基础上进行深度探讨,直到充分了解求职者的相关行 为表现为止): Tell me about a complex situati on which you have had to an alyze and assess. 请给出一个事例,表明你在面队情况非常复杂的局面的时候是如何分析和评估 的。 When you have bee n faced with con flict ing in formati on about a problem, what have you done 当你面对一个有着矛盾冲突的问题时,你会怎么做 Tell meabout an occasion where you successfully maintained your objectivity in address ing a sen sitive and difficult situatio n at work.. 请列举一个你在工作中面对一种微妙而又困难的局面时,能够成功地 保持客观的分析能力的例子

SU 导入3D的流程PDF.pdf

书山有路 Sketchup建模及导入3D的方法及选项设置 用su 建模,一是推敲方案,二是在方案推敲完成导入3D后进入后期的渲染,出效果图。SU建模注意:为了加快建模速度必须设定自己的一套快捷键,在建模的过程中必须每个体量编辑组件,以便以后的修改。为了能导入3D中进行渲染,Sketchup的模型必须面是统一的,系统默认白色的是正面,蓝色的是反面,就必须把正面朝外反面朝里,要不然在3d里面反面是显示不出来。 第一,第二就是Sketchup一定是专业版,只有它才能导出3ds格式和dwg格式。 第二,在Sketchup中把材质都赋好,记得一点是不要用Sketchup默认的材质,要新建材质赋你有的jpg格式贴图,这样在3d里面才能继续调整贴图,Sketchup默认的贴 图在3d里可是不认。 第三,就是导出了,在Sketchup里面:文件,导出,3d模型,第一个下拉菜单选所有图层,然后中间的全部都不要选择,最后一个把单位改成毫米就可以了。第一个不动 直接确定,第二个点否,现在导进来了,打灯光,打摄像机,调Vary选项。 第四,在Sketchup中赋好的材质,先把模型选中然后在编辑菜单中选Poly Select(可编辑网格选择),下面有几个选项选倒数第二个Polygon,然后在Select By Material ID里面输入相应的材质ID,被选中的材质就会变成红色,这样就可以进行材质的调整了。 第五,SU导出3DS格式说明:1、Singel Object 勾选此选项时,整个场景将合并成一个物体被输出,在SketchUP中建立的群组和组件将不能被单独进行操作,在场景 中线面数很大的情况下有可能不能完成输出;(这视情况而定) 2、Objects By Geometry 此选项将以群组和组件为单位输出物体,SketchUP 最表面一层的群组和组件被保留为单独的物体,可以在max中进行单独灵活的各种编辑,推荐使用。缺点是每一个群组和组件都会输出一个自身的多重子材质. 3、Output Texture Maps 如果不勾选,输出材质中将不包含贴图信息;贴图 文件路径需要在max里添加,建议将所有贴图复制到max模型文件所在工作目录,这样就不会出现找不到贴图的错误信息 4、Output 2-Sides 输出双面:一般情况下不需要,会额外增加模型量;但是 在SketchUP建模阶段必须保证面法线正反的正确性,否则反面在max里无法显示,产生丢面现象。Materiar和Geometry分别以材质和物体产生双面。 5、Output Standalong Edges 输出边线,对于max不必要。 6、Use “Color By Layer”Material 用层的颜色作为材质输出,是以层颜色进行管 理的材质,需要在建模起始阶段就规划好的材质管理方式,物体(或面)将以所在 的层的颜色为自身的材质。因为SketchUP里组件和层是参插的,在组件具有复合 材质时好像不易管理。 7、Generate Cameras 产生相机,基本上每一个页面会产生一个相机,这个不 用勾选。 1

2020年整理SU 导入3D的流程.doc

学海无涯 Sketchup建模及导入3D的方法及选项设置 用su 建模,一是推敲方案,二是在方案推敲完成导入3D后进入后期的渲染,出效果图。SU建模注意:为了加快建模速度必须设定自己的一套快捷键,在建模的过程中必须每个体量编辑组件,以便以后的修改。为了能导入3D中进行渲染,Sketchup的模型必须面是统一的,系统默认白色的是正面,蓝色的是反面,就必须把正面朝外反面朝里,要不然在3d里面反面是显示不出来。 第一,第二就是Sketchup一定是专业版,只有它才能导出3ds格式和dwg格式。 第二,在Sketchup中把材质都赋好,记得一点是不要用Sketchup默认的材质,要新建材质赋你有的jpg格式贴图,这样在3d里面才能继续调整贴图,Sketchup默认的贴 图在3d里可是不认。 第三,就是导出了,在Sketchup里面:文件,导出,3d模型,第一个下拉菜单选所有图层,然后中间的全部都不要选择,最后一个把单位改成毫米就可以了。第一个不动 直接确定,第二个点否,现在导进来了,打灯光,打摄像机,调Vary选项。 第四,在Sketchup中赋好的材质,先把模型选中然后在编辑菜单中选Poly Select(可编辑网格选择),下面有几个选项选倒数第二个Polygon,然后在Select By Material ID里面输入相应的材质ID,被选中的材质就会变成红色,这样就可以进行材质的调整了。 第五,SU导出3DS格式说明:1、Singel Object 勾选此选项时,整个场景将合并成一个物体被输出,在SketchUP中建立的群组和组件将不能被单独进行操作,在场景 中线面数很大的情况下有可能不能完成输出;(这视情况而定) 2、Objects By Geometry 此选项将以群组和组件为单位输出物体,SketchUP 最表面一层的群组和组件被保留为单独的物体,可以在max中进行单独灵活的各种编辑,推荐使用。缺点是每一个群组和组件都会输出一个自身的多重子材质. 3、Output Texture Maps 如果不勾选,输出材质中将不包含贴图信息;贴图 文件路径需要在max里添加,建议将所有贴图复制到max模型文件所在工作目录,这样就不会出现找不到贴图的错误信息 4、Output 2-Sides 输出双面:一般情况下不需要,会额外增加模型量;但是 在SketchUP建模阶段必须保证面法线正反的正确性,否则反面在max里无法显示,产生丢面现象。Materiar和Geometry分别以材质和物体产生双面。 5、Output Standalong Edges 输出边线,对于max不必要。 6、Use “Color By Layer”Material 用层的颜色作为材质输出,是以层颜色进行管 理的材质,需要在建模起始阶段就规划好的材质管理方式,物体(或面)将以所在 的层的颜色为自身的材质。因为SketchUP里组件和层是参插的,在组件具有复合 材质时好像不易管理。 7、Generate Cameras 产生相机,基本上每一个页面会产生一个相机,这个不 用勾选。

能力素质模型大全

国有企业能力素质模型怎么设计?——最经典能力素质模型设计案例及分析 引言: 随着国有企业的迅猛发展,员工人数大增,人浮于事的问题日益明显,严重阻碍了国有企业的稳步快速发展,加之为响应国有企业减编号召,公司将人员减编提上议程。但是应该“减”哪些员工,如何对员工进行科学准确的能力评价,如何搭建科学规范的能力素质模型就成为国有企业管理者关注的焦点。基于此,搭建科学规范的能力素质模型对国有企业员工进行科学客观的能力评价就显得迫在眉睫。科学规范的能力素质模型可以公平、公正的评价人员,对人员配置起到真正的指导作用。由此可见,搭建科学规范的能力素质模型是国有企业精简员工,着重培养有能力员工的重要手段。本文是人力资源专家——华恒智信为某国有企业搭建能力素质模型的项目纪实。 【客户行业】能源电力公司 【问题类型】能力素质模型 【客户类型】大型国有企业 【客户背景】 某能源有限公司隶属于某大型能源国有企业分公司,位于陕西省某市。公司依托集团公司煤、电、路、港、航一体化的资源优势,按照“点、线、面”相结合的方针策略,致力于打造“低碳环保、技术领先、世界一流的数字电站”。公司负责承建多个项目,是国家西部大开发经济发展的重要力量。经过十三年的发展,已成为具有一定规模的跨地区、跨电网的全国性发电企业,业务发展遍及国内15个省区及1个海外地区,拥有全资、控股、参股企业近50家(含托管),目前,公司员工数量近千人,涵括技术人员、管理人员、基层劳务人员等多个层次类型,安全生产经营形势良好,经济效益明显,正向着“国际一流发电企业”的战略目标稳步推进。 随着企业的迅猛发展,员工人数大增,人浮于事的问题日益明显,同时,为响应国有企业减编的号召,该公司也将人员减编提上议程,但是,应该“减”哪些人、如何有效评价员工各方面的能力成了管理者的难题,因此,该公司力邀人力资源专家—华恒智信进驻企业,帮助企业设计一套能落地的员工能力素质模型。 【客户需求及分析】

六类通用职位胜任素质模型

六类通用职位胜任素质 模型 集团公司文件内部编码:(TTT-UUTT-MMYB-URTTY-ITTLTY-

胜任素质模型模板1-六类通用职位胜任素质模型 胜任素质模型模板1-四类通用职位胜任素质模型 一、管理人员胜任力素质 1、人际沟通 愿意主动说服和引导他人 愿意与人合作完成任务 主动营造和维护良好的人际气氛 2、问题处理 可以较好地安排事情的优先次序 处理问题理智 3、团队合作 在团队中属于决策者 在团队中属于领导者 4、领导风格 习惯通过规章制度约束下属 只关注事情的结果,而不是过程 善于授权,不过分插手下属的工作 5、创新意识 对工作方式或者组织运行的创新、改进 不按常规做事,不按部就班,灵活机动 6、时间管理 做事速度快,强调效率、时间 乐于遵守时间表规定的进程 7、工作动力 能够自觉地负起责任 敢于面对失败和挫折,承受力强 做事积极主动 能够自我激励 坚持性和持续工作的韧性 8、决策判断 决策有魄力、迅速 决策谨慎、周全、不冲动 决策理智、不易受干扰 决策时关注全局和整体,客观分析 9、计划组织 习惯做计划,遵照计划执行

为全局和长远做打算 做事速度快,长于行动 10、其他特点 性格内向-外向 自信 大胆表达自我见解 11、适合环境 对组织的结构和对细节的关注度要求对组织的合作性和和谐性要求 二、后勤支持人员 1、人际沟通 愿意主动与人沟通交流 觉察他人情绪变化的敏感性,感受理解他人主动营造和维护良好的人际气氛 2、问题处理 对细节敏感,善于发现事物的缺陷 善于处理突发事件 可以较好地安排事情的优先次序 3、团队合作 在团队中属于支持者和参与者 在团队中属于润滑剂 在团队中属于开拓者 4、领导风格 习惯通过规章制度约束下属 只关注事情的结果,而不是过程 5、创新意识 不按常规做事,不按部就班,灵活 6、时间管理 做事速度快,强调效率、时间 乐于遵守时间表规定的进程 7、工作动力 能够自觉地负起责任 做事积极主动 坚持性和持续工作的韧性 8、决策判断 根据细节与经验做决定 完全按照规定和制度决策

Unity3d模型导入技巧

Unity3d模型导入技巧 Unity3d导入3dMax模型会产生若干问题,按照官方的说明,将max模型导成fbx文件导入untiy似乎也不能解决 1、x轴向偏转 3dmax模型导入后自动有一个x轴270度的偏转,巧合的是,在unity中旋转模型的时候,你会发现y轴参照方向永远朝上,而x和z轴则以模型本身的局部坐标为准,这样当模型沿x轴旋转270度之后,z轴正好与y轴重合,这样你试图用程序控制方向的时候就会发现旋转y和旋转z效果相同,这显然不是你期望的结果。解决这个问题的方法是,将.max文件导出为.3ds文件再导入untiy,而不是官方说的导成.fbx 2、材质问题 模型在3dmax里赋予材质之后,不管通过何种方式导入到unity中,都是没有材质的,好在untiy自动生成了这些材质的材质球,我们需要做的是将贴图再重新设置一遍,如果你的材质还有其他效果,比如lightmap,则需要选择正确的shader之后再设置贴图。 另外一个是多重材质,多重材质暂时还不知道如何在unity中显示,所以在制作模型的之后,应该先确定哪些部件应该合在一起,而哪些需要独立,比如,对于一架直升飞机来说,身体和螺旋桨就可以分为两个部件,而不应该把螺旋桨与发动机合并成一个部件,这样程序就无法旋转螺旋桨了。 3、缩放因子问题 模型导入到untiy中,如果你之前在3dmax中没有关心过“单位”问题,则它在场景里的大小一定会出呼你的意料。 unity中的1单位是fbx文件中的1单位的100倍 所以,如果我们想unity中使用1单位=1米的话,那在max和maya中制作的时候,单位就设置成1厘米 如果我们想unity中1单位=100M,那单位就设置为1M 如果我们想unity中1单位=1厘米的话,那单位就设置为0.1毫米,或者在单位为1厘米的情况下把比例因子改为1 在max中,单设置应该像这样 1Unit = 1厘米,这样在unity中1格就等3dmax中的1M了 针对经常出现的问题,将需要注意的点罗列如下: 1、物体的头要朝下

(完整word版)六类通用职位胜任素质模型

胜任素质模型模板1-六类通用职位胜任素质模型 胜任素质模型模板1-四类通用职位胜任素质模型 一、管理人员胜任力素质 1、人际沟通 愿意主动说服和引导他人 愿意与人合作完成任务 主动营造和维护良好的人际气氛 2、问题处理 可以较好地安排事情的优先次序 处理问题理智 3、团队合作 在团队中属于决策者 在团队中属于领导者 4、领导风格 习惯通过规章制度约束下属 只关注事情的结果,而不是过程 善于授权,不过分插手下属的工作 5、创新意识 对工作方式或者组织运行的创新、改进 不按常规做事,不按部就班,灵活机动 6、时间管理 做事速度快,强调效率、时间 乐于遵守时间表规定的进程 7、工作动力 能够自觉地负起责任 敢于面对失败和挫折,承受力强 做事积极主动 能够自我激励 坚持性和持续工作的韧性 8、决策判断 决策有魄力、迅速 决策谨慎、周全、不冲动 决策理智、不易受干扰 决策时关注全局和整体,客观分析 9、计划组织

习惯做计划,遵照计划执行 为全局和长远做打算 做事速度快,长于行动 10、其他特点 性格内向-外向 自信 大胆表达自我见解 11、适合环境 对组织的结构和对细节的关注度要求对组织的合作性和和谐性要求 二、后勤支持人员 1、人际沟通 愿意主动与人沟通交流 觉察他人情绪变化的敏感性,感受理解他人主动营造和维护良好的人际气氛 2、问题处理 对细节敏感,善于发现事物的缺陷 善于处理突发事件 可以较好地安排事情的优先次序 3、团队合作 在团队中属于支持者和参与者 在团队中属于润滑剂 在团队中属于开拓者 4、领导风格 习惯通过规章制度约束下属 只关注事情的结果,而不是过程 5、创新意识 不按常规做事,不按部就班,灵活 6、时间管理 做事速度快,强调效率、时间 乐于遵守时间表规定的进程 7、工作动力 能够自觉地负起责任 做事积极主动 坚持性和持续工作的韧性 8、决策判断

3D模型嵌入PDF基本教程

3D PDF基本教程 基本说明: 1、如果需要转换DWG图纸,机器上需要安装AUTOCAD软件。 2、可以不用安装三维软件。 2、机器上需要安装ACROBAT 3D软件。建议ACROBAT 3D在AUTOCAD之后安装。安装完ACROBAT 3D以后会在系统中创建一个PDF打印机。如果系统中安装有AUTOCAD 及OFFICE等的话,会在这些程序你增加菜单和按钮。 第一部分:二维PDF图纸生成。 二维PDF图纸生成有两种方法,下面先介绍通用方法。 一、通用二维PDF图纸生成方法,可用于非AUTOCAD图纸,如三维软件的工程图等。 1、用相应软件打开二维工程图。 2、使用程序的打印功能,但打印机请选择PDF打印机。 3、打印即可以生产二维PDF图纸。 二、从AUTOCAD中生成,可生成带图层信息的PDF 1、用AUTOCAD打开DWG。 2、用AUTOCAD工具栏上面的ACROBAT工具栏中的“生成PDF”按钮(第一个按钮),然后安装对话框中的提示一步步做就好了。 第二部分:在二维PDF中插入三维模型 1、用ACROBAT 3D打开生成好了的二维PDF图纸。

2、点击菜单项“Tools”->“Advanced Edigting”->“3D Tool”。 3、在图纸的空白区域拖一个方框。然后会出现一个对话框。

4、点第一个“Browse”按钮,选择一个part文件。注意,如果后缀是数字的,可以把数字 那一截去掉。例如“part1.prt.4”可以改为“part1.prt”。 5、如果觉得必要的话,可以按“Default Background Color”后面的按钮,把三维的背景色 调成白色。 6、再按“OK”按钮,保存,就完成了。 有什么问题可以MSN交流:jhq3000@https://www.sodocs.net/doc/1b18278615.html,,QQ的没有,:)

管理者通用素质能力模型参考

管理者通用素质能力模型参考 图一:管理者通用素质能力模型(总)

图三:完成任务的能力 图四:个人素质能力

图五:管理行为能力 图六:领导艺术能力 哪一种能力最重要 根据不同的岗位或岗位功能建立能力模型。每一模型包含7-16种能力。 能力模型必须牢记两个关键原则与问题――实用性与可操作性: 实用性原则――如何能以最少的时间、努力与成本完成最多的工作 可操作性原则――如何能够简化工作流程,在实际工作中能加以使用 从当前能力研究来看,有6种能力构成的基本模型能够将组织大部分职位中的绩效顶尖的员工区分出来: 1、影响力 2、以业绩为导向 3、主动性 4、团队精神 5、以服务为导向 6、质量关注意识

在这6条基础之上,针对经理人增加2-3条,针对行政主管增加几条,就得到了一个基本的、可操作的能力模型。同时,建立能力模型时必须注意以下几点: 1、能力应该用以帮助组织创造高绩效文化 2、为发挥最佳效果,每一人力资源流程(如人员筛选、绩效管理等)都应采取同一能力模式 3、能力模型在人力资源程序中使用频率越高,组织就越能创造出高绩效文化 4、能力应该用于: 向员工传达企业价值和标准 分析并改进企业文化 考核及培养员工队伍 管理继任计划进程 建立培训战略的基础 协助薪酬管理程序 能力能否得到提高 1、影响能力获得的因素: 信念和价值观 工作技能 工作经验 个性特征 工作积极性 情感因素 智力因素 2、能力的可提高性: 容易提高的能力:培养他人、生产效率、团队精神、专业知识和技术、以服务为导向、绩效管理 较难提高的能力:以业绩为导向、决策素质、影响力、解决冲突的能力、战略思维能力、分析思维能力、对组织的认识能力 行难提高的能力:主动性、创新能力、正直诚信、应对压力、灵活性、概念思维能力 二、素质能力与技能 素质能力――决定工作绩效的持久品质与特征。 技能――对某一特定领域或行业所需技术和知识的掌握情况。 素质能力在决定人们工作表现中实际起着更大的作用。 图二:人际交往能力

PCB元件库3D模型的导入说明

PCB元件库3D模型的导入 一、目的 通过新软件Altium designer 6(AD6)的3D 功能能够快速提前的为机构部门提供结构设计上的参考,提高合作的效率与准确性。 二、电子与机构需协作流程为: 2.1电子部门建立好项目需要的原理图库、PCB库; 2.2机构部门使用结构软件建立关键器件的3D模型,另存为Step或IGS文件转交给电子 部门,电子部门再把文件导入到建立的PCB 3D库(*. PCB3DLib)中; 2.3电子部门绘制好原理图,并在原理图库或原理图中,正确添加器件属性里的PCB模型 名称和3D模型名称; 2.4绘制好最终的PCB图后,查看PCB的3D效果(View \ Legacy 3D View); 2.5导出整板PCB的3D图为Step或IGES文件转交给机构部门; 2.6机构部门把整板PCB的3D图导入到结构设计软件中,作为结构设计的参考数据。 三、电子提供资料: 3.1 PCB元件库清单 四、机构注意事项: 在结构软件中建立器件3D模型时,要事先定义好器件的原点和3D坐标,3D模型的原点要和PCB封装库的原点保持一致,3D中的XY坐标则要和PCB封装库中的XY 方向保持一致然后导出为Step格式,软后导入到自建的3D库中。这样在3D状态下才能看到元件准确的定位在PCB立体视图中,否则3D元件会偏离PCB 3D中的丝网位置。 如果角度不对也会出现错位,甚至部分在PCB上面,部分在PCB下面。(在结构软件中,当元件为单个实体时,原点即为实际定义原点,当元件为装配实体时,先定义好总的参考原点,再装配好各部件,最后另存为Step或IGS文件转交给电路部门,电路部门再把文件导入到自己建立的PCB 3D库(*. PCB3DLib)

六类通用职位胜任素质模型

胜任素质模型模板1-四类通用职位胜任素质模型 一、管理人员胜任力素质 1、人际沟通 愿意主动说服和引导他人 愿意与人合作完成任务 主动营造和维护良好的人际气氛 2、问题处理 可以较好地安排事情的优先次序 处理问题理智 3、团队合作 在团队中属于决策者 在团队中属于领导者 4、领导风格 习惯通过规章制度约束下属 只关注事情的结果,而不是过程 善于授权,不过分插手下属的工作 5、创新意识 对工作方式或者组织运行的创新、改进 不按常规做事,不按部就班,灵活机动 6、时间管理 做事速度快,强调效率、时间 乐于遵守时间表规定的进程 7、工作动力 能够自觉地负起责任 敢于面对失败和挫折,承受力强 做事积极主动 能够自我激励 坚持性和持续工作的韧性 8、决策判断 决策有魄力、迅速 决策谨慎、周全、不冲动 决策理智、不易受干扰 决策时关注全局和整体,客观分析 9、计划组织 习惯做计划,遵照计划执行 为全局和长远做打算

做事速度快,长于行动 10、其他特点 性格内向-外向 自信 大胆表达自我见解 11、适合环境 对组织的结构和对细节的关注度要求对组织的合作性和和谐性要求 二、后勤支持人员 1、人际沟通 愿意主动与人沟通交流 觉察他人情绪变化的敏感性,感受理解他人主动营造和维护良好的人际气氛 2、问题处理 对细节敏感,善于发现事物的缺陷 善于处理突发事件 可以较好地安排事情的优先次序 3、团队合作 在团队中属于支持者和参与者 在团队中属于润滑剂 在团队中属于开拓者 4、领导风格 习惯通过规章制度约束下属 只关注事情的结果,而不是过程 5、创新意识 不按常规做事,不按部就班,灵活 6、时间管理 做事速度快,强调效率、时间 乐于遵守时间表规定的进程 7、工作动力 能够自觉地负起责任 做事积极主动 坚持性和持续工作的韧性 8、决策判断 根据细节与经验做决定 完全按照规定和制度决策

类通用职位胜任素质模型

胜任素质模型模板1-六类通用职位胜任素质模型胜任素质模型模板1-四类通用职位胜任素质模型 一、管理人员胜任力素质 1、人际沟通 愿意主动说服和引导他人 愿意与人合作完成任务 主动营造和维护良好的人际气氛 2、问题处理 可以较好地安排事情的优先次序 处理问题理智 3、团队合作 在团队中属于决策者 在团队中属于领导者 4、领导风格 习惯通过规章制度约束下属 只关注事情的结果,而不是过程 善于授权,不过分插手下属的工作 5、创新意识 对工作方式或者组织运行的创新、改进 不按常规做事,不按部就班,灵活机动 6、时间管理 做事速度快,强调效率、时间 乐于遵守时间表规定的进程 7、工作动力 能够自觉地负起责任 敢于面对失败和挫折,承受力强 做事积极主动 能够自我激励 坚持性和持续工作的韧性 8、决策判断 决策有魄力、迅速 决策谨慎、周全、不冲动 决策理智、不易受干扰 决策时关注全局和整体,客观分析 、计划组织9. 习惯做计划,遵照计划执行 为全局和长远做打算 做事速度快,长于行动 10、其他特点 性格内向-外向 自信 大胆表达自我见解 11、适合环境

对组织的结构和对细节的关注度要求 对组织的合作性和和谐性要求 二、后勤支持人员 1、人际沟通 愿意主动与人沟通交流 觉察他人情绪变化的敏感性,感受理解他人主动营造和维护良好的人际气氛 2、问题处理 对细节敏感,善于发现事物的缺陷 善于处理突发事件 可以较好地安排事情的优先次序 3、团队合作 在团队中属于支持者和参与者 在团队中属于润滑剂 在团队中属于开拓者 4、领导风格 习惯通过规章制度约束下属 只关注事情的结果,而不是过程 5、创新意识 不按常规做事,不按部就班,灵活 6、时间管理 做事速度快,强调效率、时间 乐于遵守时间表规定的进程 7、工作动力 能够自觉地负起责任 做事积极主动 坚持性和持续工作的韧性 、决策判断8. 根据细节与经验做决定 完全按照规定和制度决策 决策谨慎、周全、不冲动 决策时关注全局和整体,客观分析 9、计划组织 习惯做计划,遵照计划执行 原则性强,严格遵守规章制度,不变通10、其他特点 性格内向-外向 敏感,易受无关因素影响 琐碎 11、适合环境 对组织的社会性要求 对组织的开放性和想像力要求 对组织的合作性和和谐性要求 三、技术人员

3dmax怎么导入模型

3dmax怎么导入模型 1、x轴向偏转 3dmax模型导入后自动有一个x轴270度的偏转,巧合的是,在unity中旋转模型的时候,你会发现y轴参照方向永远朝上,而x和z轴则以模型本身的局部坐标为准,这样当模型沿x轴旋转270度之后,z轴正好与y轴重合,这样你试图用程序控制方向的时候就会发现旋转y和旋转z效果相同,这显然不是你期望的结果。解决这个问题的方法是,将.max文件导出为.3ds文件再导入untiy,而不是官方说的导成.fbx 2、材质问题 模型在3dmax里赋予材质之后,不管通过何种方式导入到unity中,都是没有材质的,好在untiy自动生成了这些材质的材质球,我们需要做的是将贴图再重新设置一遍,如果你的材质还有其他效果,比如lightmap,则需要选择正确的shader之后再设置贴图。 3、缩放因子问题 模型导入到untiy中,如果你之前在3dmax中没有关心过“单位”问题,则它在场景里的大小一定会出呼你的意料。 unity中的1单位是fbx文件中的1单位的100倍 所以,如果我们想unity中使用1单位=1米的话,那在max和maya 中制作的时候,单位就设置成1厘米

如果我们想unity中1单位=100M,那单位就设置为1M 如果我们想unity中1单位=1厘米的话,那单位就设置为0.1毫米,或者在单位为1厘米的情况下把比例因子改为1 在max中,单设置应该像这样 1Unit = 1厘米,这样在unity中1格就等3dmax中的1M了(1.)利用Reset Xform重新定義Transform資料<這個方式作遊戲是一定要用到的> (2.)在FBX導出時可以設置軸向以Z up或是Y up 2貼圖放置再同一個資料夾,就會自動導入了 3.比例其實也不用設置,你可以試試在max作一個長、寬、高都是1,1,1,進去就會剛好

相关主题