本帖最后由 huawenguang 于 2010-7-15 12:20 AM 编辑
高级OpenGL,3D程序员
要求: 1、精通C/C++,OpenGL编程,对DLL开发有足够的认识。 2、对各种3D数学理论有较深入的认识和理解。 3、对2D数字图像处理有一定的认识。 3、有Maya API插件开发经验的优先。 4、有对后期合成软件Nuke插件开发经验的优先。 5、有在影视动画公司担任过TD职务的优先。 5、应聘者请在个人简历中附上你的作品,并注明工资期望。
以下是几道相关的题目,你可以选其中一两道来做,当然你如果能全部完成,那被录用的概率也会大增。代码要求用C++来写,并且要能通过编译及运行,附上必要的算法说明文字。 所有相关数据能在下面这个连接中下载到: http://www.fiist.com/job/JOB2010.rar //============================================================================ (一)、这里有一个记录波形数字采样的文件wave.segy ,记录的情况如下图所示:
一共有901道波形数据,每道数据有512个采样值。要求把这些数据读取出来,然后把这些波形用OpenGL绘制出来,可以考虑用多种绘制方案,如曲线或转换成纹理。
读取这些数据的的代码如下:
#include <fstream> #include <iostream> using namespace std;
int main() { int i,j,ns,ntr; float data; ifstream infile; infile.open("model.segy",ios::binary); ntr = 901; //Segy文件总道数 ns = 512; //Segy文件的采样点 infile.seekg(3600,ios::beg); //跳过3600字节的卷头 for(i=0;i<ntr;i++){ infile.seekg(240,ios::cur); //跳过240字节的道头 for(j=0;j<ns;j++){ infile.read((char*)&data,sizeof(float)); //读取每个采样点的数据,格式为float类型 cout<<data<<"\n"; } } infile.close(); return 0; }
//====================================================================== (二)写一个基于MAYA API的命令插件,用来判断一个mesh模型是否是组合模型,是返回1,否返回0,如果你还不会写MAYA插件,用文字写一份详细的算法说明也可以。
所谓组合模型是指原本两个独立的mesh模型,通过MAYA的Combine命令把它们合并成一个mesh,我们还可以用separate命令来把它们重新分开。
两个模型被组合在成一个mesh。 如何快速判断它们是组合体而不是两个独立的模型。我们可以取到的数据有所有顶点组成的顶点数组,边数组(每条边包含两个顶点的索引),面数组(每个面包含三个顶点的索引) struct Point { float x,y,z; } std::vector<Point> mPointArray; //两个被组合的模型的所有顶点都放在一个数组里了。
struct Edge { int indexA; //这是基于mPointArray数组的索引 int indexB; }
std::vector<Edge> mEdgeArray; //所有的边
struct Triangle { int index1; int index2; //同样是基于顶点数组的 int index3; }
std::vector<Triangle> mTrangleArray ;//所有的面
//========================================================================== (三)有四张iff格式的图像,iff是MAYA独有的一种2D图像文件格格式,要求用C++写一个程序,把这四张iff图像组合成一张完整的图像,你可以用MAYA自带的ilib,flib来实现,也可以完全自已写代码来处理,这里MAYA文档中附带有iff文件格式的详细说明。
(四)写一个基于OpenGL的程序,能实现对3D场景的旋转、缩放等基本功能,然后在场景中间有一个球,这个球能实时反射周围场景的所有内容。如下图所示,当然,我们要的不仅仅是对一个天空盒的反射,而是对整个场景中所有模型的一个实时镜面反射。 场景你可以在网上下载任何一个简单的场景就可以。要求必须用OpenGL来实现,不要用现有的某些游戏引擎来做。
Updata time 2010/7/15
//************************************************************************************************ //******************************************************************************************************
岗 位2: 网络程序员
要求:
1、 熟悉html,js,css,有企业网站后台建设经验、独立开发过网站;
2、熟练掌握asp 、PHP 编程技术;
3、熟练掌握 SQL Server 或者 Oracle 数据库技术;
4、有大型网站开发经验者优先,要求提供作品;
5、熟悉php+mysql者优先;
6、熟练使用Fireworks、photoshop、corelDRAW等图片处理软件者优先;
8、有WebGL 3D网页开发经验优先;
7、思维敏捷,善于沟通,踏实肯干,为人正直,工作认真、细心,具有较强的协调沟通能力 ,具备良好的团队合作精神 。
联系:huawenguang@sina.com |