计算机图形学Word文档下载推荐.docx
- 文档编号:21018895
- 上传时间:2023-01-26
- 格式:DOCX
- 页数:13
- 大小:29.62KB
计算机图形学Word文档下载推荐.docx
《计算机图形学Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《计算机图形学Word文档下载推荐.docx(13页珍藏版)》请在冰豆网上搜索。
对于这个项目,您将有机会熟悉基本的OpenGL概念和实时图形编程。
你将实现基本的相机和照明功能,渲染3d网格和heightmap。
你会发现OpenGL编程指南(红皮书)是极有帮助的,因为它涵盖了几乎所有主题这个任务所需的细节。
2Description
2描述
Iamhappytohaveyouonboardforthenextfourassignments!
Theassignmentsaredesignedtogiveyouanopportunitytoimplementsomeofthetheoreticalideasthatarediscussedinlectureandachancetoprogramgraphicsapplications.
我很高兴你在船上在接下来的四个作业!
作业的目的是给你一个机会来实现的一些理论观点进行讲座和程序图形应用程序的机会。
Forallassignments,wewilldirectyoutowardsresourcesforhelp,butifyouneedmoreclarificationorhaveaquestion,thebestplacetogoisPiazza,whichcanbefoundat:
对所有作业,我们将直接向资源帮助你,但是如果你需要更多的澄清或有问题,最好的去处是广场,可以发现:
LetusknowifyouarenotsignedupforPiazza.Weusethisboardforstudentsforthiscourse.Forthisparticularassignment,theOpenGLredbookwillbethemosthelpfulresource.
让我们知道如果你不注册了广场。
我们使用这个董事会对这门课的学生。
对于这个任务,OpenGL红皮书将最有帮助的资源。
WewillbeusingOpenGLforalmostalloftheassignments,sothislabisanintroductiontothelibrary.YourtaskistouseOpenGLtorenderasimple3Dscene:
apoolwithanimatedwater,inwhichyoucanmovethecameraaroundwithmouseandkeyboardinput.
我们将使用OpenGL为几乎所有的作业,所以这个实验室是一个介绍图书馆。
你的任务是使用OpenGL渲染一个简单的3d场景:
池与动画水,你可以用鼠标和键盘输入移动相机。
Wewillgiveyouascenewithamodelforourpool.Thewaterwillberepresentedasaheightmap.Aheightmapisafunctionthatdefinesay-positionforeverypointinthexz-plane.Wewillbeusingthistocreateananimatedsurfaceofwaterbycalculatingthepositionsofpointsinthexz-planeoneachtimestepandconstructingapolygonalmesh.
我们会给你一个场景模型为我们的游泳池。
水将被表示为heightmap。
heightmap是一个函数,定义了xz-plane中的每个点的坐标。
我们将使用这个来创建一个动画表面的水通过计算点的位置在每个时间步和xz-plane构造一个多边形网格。
3SubmissionProcessandHandinInstructions
3提交过程和Handin指令
Failuretofollowsubmissioninstructionswillnegativelyimpactyourgrade.
未能遵循提交指令将产生负面影响你的成绩。
1.Youshouldsubmitall_lesneededtobuildyourproject,aswellasanytextures,models,shaders,orscreenshotsthatyouusedorcreated.Yourdeliverablesinclude:
1。
你应该提交所有_les需要构建您的项目,以及任何纹理,模型,着色器,或者截图,您使用或创建。
可交付成果包括:
lsrc/folderwithall.cppand.hppfiles.
lsrc/文件夹和所有。
cpp和。
进行文件。
lCMakebuildsystem.
lcmake构建系统。
lwriteup.txt
lwriteup.txt
lAnymodels/textures/shadersneededtorunyourcode.
l任何型号/材质/着色器需要运行您的代码。
lExefilesIcanrunit.
lexe文件我可以运行它。
4RequiredTasks
4要求的任务
Averygeneraloverviewoftheimplementationrequirementsisasfollows.Refertosubsequentsectionsofthehandoutformoredetails.Figure1showsascreenshotofthereferenceimplementation.
实现需求的一个总体概述如下。
参考后面的部分讲义的更多细节。
图1显示了一个参考实现的截图。
Input:
Theinputtotheprogramisahardcodedscenecontainingamodel,aheightmap,alight,acamera,andsomepositionandmaterialproperties,alongwithbasicfunctionalityforloadingawindow,savingscreenshots,movingthecamerawiththemouseandkeyboard,andrunningarenderingloop.
输入:
程序是一个硬编码的输入场景包含一个模型,heightmap,一盏灯,一个相机,和一些位置和材料特性,随着加载窗口的基本功能,保存截图,用鼠标和键盘,移动相机和运行一个渲染循环。
Output:
Theoutputisarenderingofthisscene,inadditiontoscreenshotsandwriteup.txt.Yourcodemustcomputethenormalsforthemodelandheightmap.
输出:
输出是这个场景的渲染,除了截图和writeup.txt。
你的代码必须为模型计算法线和heightmap。
Foryourprogram,youmust:
对于您的程序,您必须:
lCorrectlysettheprojectionandmodelviewmatricesbasedonthecamera'
svalues.Theusershouldbeabletomovethecameraaroundwiththemouseandkeyboard.
l正确设置投影和modelview矩阵基于相机的值。
用户应该能够移动相机用鼠标和键盘。
lGenerateameshfortheheightmap.
lheightmap生成网格。
lComputeper-vertexnormalsforthemodelandheightmap'
smeshes.
l为模型计算种每个顶点都具备的法线和heightmap的网格。
lUseOpenGLfixed-functionalitytoaddlightstothescenetocorrectlyshadethescenewiththegivenmaterials,settingappropriateambient,diffuseandspeculareffects.
l使用OpenGLfixed-functionality添加灯光,场景正确颜色用给定的材料,现场设置适当的环境,漫反射和镜面效果。
lSubmitafewscreenshotsofyourprogram'
srenderings.
l提交程序的渲染的一些屏幕截图。
lUsegoodcodestyleanddocumentwell.Wewillreadyourcode.
l使用良好的代码风格和文档。
我们将阅读你的代码。
lFilloutwriteup.txtwithdetailsonyourimplementation.
l填写那样。
txt和实现细节。
Ataminimum,youmustmodifyp1/project.cppandwriteup.txt,thoughyoumaymodifyoraddadditionalsourcefiles.
至少,您必须修改p1/项目。
cpp和那样。
txt,尽管你可能会修改或添加额外的源文件。
writeup.txtshouldcontainadescriptionofyourimplementation,alongwithanyinformationaboutyoursubmissionofwhichthegradersshouldbeaware.Providedetailsonwhichmethodsandalgorithmsyouusedforthevariousportionsofthelab.Essentially,ifyouthinkthegraderneedstoknowaboutittounderstandyourcode,youshouldputitinthisfile.Youshouldalsonotewhichsourcefilesyoueditedandanyadditionalonesyouhaveadded.
那样。
txt应该包含您的实现的描述,以及关于你的任何信息提交的年级应该意识到。
提供细节的方法和算法用于实验室的各个部分。
从本质上讲,如果你认为年级需要知道理解你的代码,你应该把它放在这个文件。
你也应该注意哪些源文件你编辑和任何额外的补充道。
Examplesofthingstoputinwriteup.txt:
东西放在writeup.txt的例子:
Ø
Mentionpartsoftherequirementsthatyoudidnotimplementandwhy.
提到的部分需求,你没有实现和为什么。
Describeanycomplicatedalgorithmsusedoralgorithmsthatarenotdescribedinthebook/hand-out.
描述任何复杂的算法或算法书中没有描述/施舍。
Justifyanymajordesigndecisionsyoumade,suchaswhyyouchoseaparticularalgorithmormethod.
证明任何主要的设计决策,比如你为什么选择一个特定的算法或方法。
Listanyextraworkyoudidontopofbasicrequirementsofwhichthegradershouldbeaware.
列出任何额外的工作你的年级应该注意的基本要求。
Figure1:
Exampleprogramoutput
图1:
示例程序输出
5StarterCode
5起动器代码
Itisrecommendedthatyoubeginbyfirrstreviewingthestartercodeprovided.Thoughtheamountyoumusteditissmall,weareprovidingyouwithalargecodebasetogetyoustarted.Youwillneedtogetfamiliarwithit,sincemuchofitwillbeusedinfutureprojectsaswell.TheREADMEgivesabreakdownofeachsourcefile.
建议您首先firrst审查提供起动器代码。
虽然您必须编辑数量很小,我们为你提供一个大型代码库,以此让你开始复习。
你需要熟悉它,因为大部分将用于未来的项目。
每个源文件的自述了崩溃。
5.1ProgrammingLanguage
5.1编程语言
ThecodebaseisinC++.Weknowthatthismaybeanewlanguagetomanyofyou,andsoitislimitedtoCandasmallsubsetofC++.InadditiontoC,thecodeusesclasses,operatoroverloading,andabitoftheStandardTemplateLibrary,notablystd:
:
stringandstd:
vector.Ifyouareunfamiliarwiththese,yourfirsttaskshouldbetolearnthem.Iamavailableforhelp.
在c++代码库。
我们知道这可能是一个新的语言给你很多,所以它是有限的C和c++的一个小子集。
除了C代码使用类、操作符重载,和一个标准模板库,尤其是std:
string和std:
向量。
如果您不熟悉这些,你的首要任务应该是学习。
我可以帮助。
5.2ProvidedFunctionality
5.2提供的功能
Thestartercodeprovidesaslewoffunctionalitytogetyoustartedthatisneitherveryinterestingtowritenorrelevantforthecourse.Youarefreetomodifyanyofitasyouseefit,providedyoudonotbreaktheapplicationbehavior.Youmayaddanynewbehavioryouwish.Youwillseethesamecodeeachproject.Reportanybugstocoursestaff.Hereisabriefbreakdownofwhatisprovided;
seetheREADMEforfurtherdetails.
起动器的代码提供了大量的功能开始既不有趣的写作也不相关的课程。
你可以自由修改任何你认为合适的,只要你不违反程序的行为。
你希望你可以添加任何新的行为。
每个项目你会看到相同的代码。
当然员工报告任何bug。
这里是一个简短的分解提供了什么;
参见README进一步的细节。
MatrixAlgebra:
Structuresandseveralhelperfunctionsforvectors,matrices,quaternions,andcolors.Mostbasicfunctionsyouwouldneed(e.g.,dotproduct,matrix-vectormultiplication)havebeenprovided.Takealookbeforeyouwriteabasicmathfunctiontosaveyourselftime.ThefunctionnamesandtypesaregenerallythesameasthoseintheOpenGLShadingLanguage,whichyouwillseeinafutureproject.
矩阵代数:
结构和几个辅助函数向量,矩阵,四元数和颜色。
你需要(如最基本的功能。
、点积矩阵向量乘法)已经提供。
看一看在你编写一个基本的数学函数来节省时间。
函数名称和类型通常是OpenGL阴影的相同的语言,你会看到在未来的项目。
WindowInitialization/EventHandling:
SDLisusedtoinitializethewindow.ThestartercodecreatesawindowandanOpenGLcontext,thenrunsamainloopthatinvokesupdate/renderfunctionsataconsistentframerate.SDLisalsousedtoprocesskeyboardandmouseevents.
窗口初始化/事件处理:
SDL是用来初始化窗口。
起动器代码创建一个窗口和一个OpenGL上下文,然后运行一个主循环调用更新/渲染功能一致的帧速率。
SDL还用于处理键盘和鼠标事件。
MeshLoading:
AclassthatloadsanOBJmeshintoalistofverticesandtriangles.Inthisproject,onlypositionsareprovidedforeachvertex.NotallOBJ_lesaresupported;
consultthecodeformoredetail.
网加载:
一个类装载一个OBJ网格顶点的列表和三角形。
在这个项目中,只提供给每个顶点位置。
并不是所有的OBJ_les支持;
咨询更详细的代码。
ImageSaving/Loading:
Routinestosave/loadpngsintoarraysofRGBAdata.Also,thestarterapplicationcodesavesascreenshotwhenthe`f'
keyispressed.
图像保存/加载:
例程保存/加载pngRGBA数据的数组。
同时,starter应用程序代码保存截图当f键被按下。
5.3BuildingandRunningtheCode
5.3构建和运行代码
ThisprojectusestheCMakebuildsystem(www.cmake.org).CMakeisakindof\metabuild-system,\"
inthatitcreatesabuildsystemforyou.Itsupportsmanydi_erentbuildsystems,rangingfromUnixMake_lestoVisualStudioprojectstoXCodeprojects.
这个项目使用CMake构建系统(www.cmake.org)。
CMake是一种\meta构建系统”,为您创建一个构建系统。
它支持许多di_erent构建系统,从UnixMake_lesVisualStudio项目XCode项目。
Ifyoudon'
thaveCMakeinstalled,youshouldinstallit.Ifyou'
rerunningLinux,itshouldbeavailablethroughyourdisto'
spackagemanager(apt-get,pacman,ports,etc).WindowsandOSXinstallerscanbedownloadedfromhttp:
//www.cmake.org/cmake/resources/software.html
如果你不安装了CMake,你应该安装它。
如果你运行Linux,它应该是可以通过你的disto包管理器(apt-get,吃豆子、港口等)。
Windows和OSX安
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 图形学