当前位置: 首页 > news >正文

建网站论坛百度推广开户代理

建网站论坛,百度推广开户代理,wordpress建站文本教程,开发软件需要什么HNU计算机图形学-作业二 作业二:纹理和照明前言介绍实施详细信息任务1:加载复杂对象任务2:纹理映射和照明任务3:互动活动和动画额外任务:增强场景的视觉效果(最高20%) 最终实现效果 作业二&…

HNU计算机图形学-作业二

  • 作业二:纹理和照明
    • 前言
    • 介绍
    • 实施详细信息
      • 任务1:加载复杂对象
      • 任务2:纹理映射和照明
      • 任务3:互动活动和动画
      • 额外任务:增强场景的视觉效果(最高20%)
    • 最终实现效果

作业二:纹理和照明

前言

完整工程文件

说实话第二次作业和第一次作业相比也没多什么东西,就是用了一些更高级点的技术(光照,纹理和3D模型等等),纯粹就是将各个模型堆在一起而已,但也完成了文档要求的所有内容。至于assimp库是从网上下载的,摄像机类和shader和texture类是从learnOpenGL这个网站抄的。凑合看看吧

介绍

在本任务中,您需要使用OpenGL构建一个更加逼真和复杂的场景。为了完成这项任务,您将在OpenGL中体验更多功能,包括照明、复杂的模型构建和加载、纹理映射和交互式事件。您将使用基本体图形 或直接从.obj文件加载三维模型,然后查看/建模变换以创建此三维场景。将使用纹理贴图和照明使场景和对象更加逼真。鼠标/键盘输入和窗口事件处理将有助于实现交互式动画。

在这里插入图片描述

在该指定中,场景中有两个模型。其中一个(背景雪原)比较简单,另一个(企鹅)比较复杂。我们可以自己设计背景雪原的顶点属性。然而,对于企鹅来说,它是如此复杂,以至于我们需要通过.obj文 件加载模型。此外,雪原和企鹅被渲染成不同的纹理和灯光效果。所显示的场景可以通过用户的交互式输入来控制。您还可以丰富在指定1中创建的场景。

实施详细信息

任务1:加载复杂对象

使用Open Asset Import Library,或我们拥有的函数Model loadOBJ(const char*objPath)给定加载至少一个复杂模型,即演示程序中的企鹅。在本部分中,您可以通过修改void sendDataToOpenGL()子例程来使用Model loadOBJ(const char*objPath)`函数。

我们在演示程序中提供了模型,即snowfield.objpenguin.obj。我们鼓励您从Internet下载其他.obj文件或使用Blender来设计您的对象。

(你需要检查penguin.obj,因为如果你直接画企鹅,它会非常巨大。具体来说,你需要做一些转换。)

任务2:纹理映射和照明

您需要将不同的纹理映射到两个模型,即演示程序中的雪地和企鹅。我们将使用(请参阅依赖项/stb_image)来加载纹理图像。您需要使用键盘交互来更改企鹅的纹理。您首先需要生成一个OpenGL纹理, 并通过修改void texture::setupTexture(const char*texturePath)子例程来设置纹理参数。

然后,分别在void sendDataToOpenGL()void paintGL(void)子例程中加载纹理并将其绑定到不同的模型。stb imagelibrary

在这里,我们还在演示程序中提供了两个模型的纹理,也鼓励您从互联网上下载其他纹理或自己绘制/过滤纹理。

此外,3D场景应使用至少两个光源进行照明。一个应该是环境(定向)灯。对于其他光源,您可以 自己决定位置和颜色。添加此类光源的主要目的是在模型上产生漫射光和镜面光效果。您可以通过修改void paintGL(void)子例程来完成此操作。

任务3:互动活动和动画

在此任务中,您需要实现以下交互式事件和动画:

(a) 照明控制

按“w”键和“s”键可分别增加和减少定向光的亮度。

(b) 纹理控制

按“1”和“2”键为企鹅切换两种不同的纹理,我们还提供了两种可以应用于企鹅的纹理。(即penguin/penguin_01.jpg,penguin/penguin_02.jpg

按“3”和“4”键可以切换雪原的两种不同纹理,我们还提供了两种可以应用于企鹅的纹理。(即雪地/雪地_01.jpg,雪地/雪地_02.jpg

© 对象控件

按下箭头键“↑↓←→”

以控制企鹅的运动。具体而言,“↑↓”

分别指示向前和向后移动。“←→”

分别指示向左和向右旋转。(请参阅演示程序中企鹅的动画)

(d) 视图控件

通过鼠标控制摄像机的视图,这意味着:

当单击左键,鼠标上下移动时,您看到的整个场景会相应地上下移动。

(请参阅演示程序。不需要右键单击功能。)

在本任务中,您可以修改以下子程序来实现上述要求:

void mouse_button_callback(GLFWwindow*窗口,int按钮,int操作,int mods)
{
// Sets the mouse-button callback for the current window.
}
void cursor_position_recallback(GLFWwindow*窗口,双x,双y)
{
// Sets the cursor position callback for the current window
}
void scroll_callback(GLFWwindow*窗口,双xoffset,双yoffset)
{
// Sets the scoll callback for the current window.
}
void key_callback(GLFWwindow*窗口,int键,int扫描代码,int操作,int mods)
{
// Sets the Keyboard callback for the current window.
}

额外任务:增强场景的视觉效果(最高20%)

OpenGL为您的程序提供了许多功能来创建各种视觉效果。你可以自己研究它们,并将它们引入作业中

以下是一些建议的改进:

• 加载更复杂的模型,并将其他纹理映射到它们上,以形成一个有意义的场景。(10%)

• 使用不同类型的光源来制作有意义的场景,例如Pointlight、Spotlight等的组合(10%)

• 复杂模型上的阴影映射。(10%)

• 绘制点或线来跟踪其中一个复杂模型的运动。(10%)

• 任何其他有趣的效果。

最终实现效果

在这里插入图片描述

夜晚开灯效果:

在这里插入图片描述

使用方法:

Manipulation:
Key:
Key “ESC”:退出程序
Key “1”:切换企鹅模型纹理
Key “2”:切换企鹅模型纹理
Key “3”:切换雪地模型纹理
Key “4”:切换雪地模型纹理
Key “W”:定向光加强
Key “S”:定向光减弱
Key “ENTER”:切换球场地板贴图
Key “X”:白天和黑夜模式切换(注:白天和黑夜分别有太阳模型和月球模型在上空移动,用于模拟太阳东升西落)
Key “Z”:球场四盏路灯的照明开关
Key “UP”:控制企鹅前行
Key “DOWN”:控制企鹅后退
Key “LEFT”:控制企鹅左转
Key "RIGHT:控制企鹅右转
Key "SPACE:控制企鹅跳跃

//以下功能得在退出第三人称跟随时使用,如何退出请看鼠标事件
Key “T”:控制摄像机前移
Key “G”:控制摄像机后移
Key “F”:控制摄像机左移
Key “H”:控制摄像机右移

Mouse:
鼠标左键:第三人称视角跟随开关(初始默认开启)
鼠标右键:手电筒开关(需在关闭第三人称跟随时才能使用)
鼠标滑轮:控制屏幕视角大小
鼠标移动:当关闭第三人称跟随时摄像机会跟随鼠标移动而移动

//注意:本项目有个小bug,当退出第三人称视角跟随并且再次移动摄像机位置,然后再点击左键回到第三人称视角时,摄像机的主视角可能会不正对企鹅模型(或者视角丢失),需要再退出第三人称跟随然后重新调整摄像机位置和视角。

用)
鼠标滑轮:控制屏幕视角大小
鼠标移动:当关闭第三人称跟随时摄像机会跟随鼠标移动而移动

//注意:本项目有个小bug,当退出第三人称视角跟随并且再次移动摄像机位置,然后再点击左键回到第三人称视角时,摄像机的主视角可能会不正对企鹅模型(或者视角丢失),需要再退出第三人称跟随然后重新调整摄像机位置和视角。

就这样吧,简简单单的一个作业。第三次就是比较有难度的。


文章转载自:
http://dinncomegaric.wbqt.cn
http://dinncoovum.wbqt.cn
http://dinncomicrohardness.wbqt.cn
http://dinncoblastoff.wbqt.cn
http://dinncoshuffleboard.wbqt.cn
http://dinncoflushing.wbqt.cn
http://dinncoreflet.wbqt.cn
http://dinncojadishly.wbqt.cn
http://dinncodiscriminability.wbqt.cn
http://dinncodenticare.wbqt.cn
http://dinncocarshalton.wbqt.cn
http://dinncoarrhythmic.wbqt.cn
http://dinncostylistically.wbqt.cn
http://dinncoshoogle.wbqt.cn
http://dinncoastrolithology.wbqt.cn
http://dinncofinnick.wbqt.cn
http://dinncoincreately.wbqt.cn
http://dinncosillimanite.wbqt.cn
http://dinncoimperiality.wbqt.cn
http://dinncobohea.wbqt.cn
http://dinncocentare.wbqt.cn
http://dinncosunfish.wbqt.cn
http://dinncobroadband.wbqt.cn
http://dinncojor.wbqt.cn
http://dinncoscandium.wbqt.cn
http://dinncocamphire.wbqt.cn
http://dinncostargaze.wbqt.cn
http://dinncoalif.wbqt.cn
http://dinncohepatotomy.wbqt.cn
http://dinncotenemental.wbqt.cn
http://dinncobetter.wbqt.cn
http://dinncowadmal.wbqt.cn
http://dinncolx.wbqt.cn
http://dinncoextinct.wbqt.cn
http://dinncorestrict.wbqt.cn
http://dinncohandle.wbqt.cn
http://dinncoevacuee.wbqt.cn
http://dinncocytopathogenic.wbqt.cn
http://dinncobiodynamical.wbqt.cn
http://dinncopushmobile.wbqt.cn
http://dinncomobdom.wbqt.cn
http://dinncopendulum.wbqt.cn
http://dinncosyndactylus.wbqt.cn
http://dinncopithecanthrope.wbqt.cn
http://dinncocrowdy.wbqt.cn
http://dinncochirograph.wbqt.cn
http://dinncocutover.wbqt.cn
http://dinncoapollo.wbqt.cn
http://dinncotrinal.wbqt.cn
http://dinncolowery.wbqt.cn
http://dinncocrutch.wbqt.cn
http://dinncopaint.wbqt.cn
http://dinncolotusland.wbqt.cn
http://dinncocautery.wbqt.cn
http://dinncopaying.wbqt.cn
http://dinncolamister.wbqt.cn
http://dinncobioautography.wbqt.cn
http://dinncoupthrow.wbqt.cn
http://dinncoageing.wbqt.cn
http://dinncounmugged.wbqt.cn
http://dinncochickling.wbqt.cn
http://dinncoerythropia.wbqt.cn
http://dinncoromantism.wbqt.cn
http://dinncounpresumptuous.wbqt.cn
http://dinncoantitrust.wbqt.cn
http://dinncoforester.wbqt.cn
http://dinncokengtung.wbqt.cn
http://dinncocaducei.wbqt.cn
http://dinncoscythe.wbqt.cn
http://dinncooutfox.wbqt.cn
http://dinncorepossessed.wbqt.cn
http://dinncounderstaffing.wbqt.cn
http://dinncoquiz.wbqt.cn
http://dinncomancunian.wbqt.cn
http://dinncopapuan.wbqt.cn
http://dinncoinsufflator.wbqt.cn
http://dinncobowleg.wbqt.cn
http://dinncocassis.wbqt.cn
http://dinncoplantsman.wbqt.cn
http://dinncobombsite.wbqt.cn
http://dinncoamid.wbqt.cn
http://dinncoprosify.wbqt.cn
http://dinncoiconolater.wbqt.cn
http://dinncotrisect.wbqt.cn
http://dinncohysteric.wbqt.cn
http://dinncoterm.wbqt.cn
http://dinncocorrode.wbqt.cn
http://dinncotolan.wbqt.cn
http://dinncoshallot.wbqt.cn
http://dinncosiren.wbqt.cn
http://dinncodefogger.wbqt.cn
http://dinncobadminton.wbqt.cn
http://dinncoenflame.wbqt.cn
http://dinncounimplemented.wbqt.cn
http://dinncoenchilada.wbqt.cn
http://dinncoturtleburger.wbqt.cn
http://dinncopolycrystal.wbqt.cn
http://dinncosvga.wbqt.cn
http://dinncodeadfall.wbqt.cn
http://dinncoaccepter.wbqt.cn
http://www.dinnco.com/news/148280.html

相关文章:

  • wordpress4.7.10烟台seo快速排名
  • 重庆快速排名网站优化方法
  • 网站备案个人可以做吗哪里有整站优化
  • 企业信息化系统包括哪些内容长沙seo优化服务
  • 深圳专业做网站的天津放心站内优化seo
  • 建设网站是什么南昌关键词优化软件
  • 杭州哪家做外贸网站好朋友圈的广告推广怎么弄
  • 有没有做奥数题的网站产品软文案例
  • 淘宝优惠券怎么做网站淘宝关键词优化
  • 网络规划设计方案实例seo技术员
  • 泉州做网站的韩国今日特大新闻
  • 深圳网站建设推广论坛网站制作的步骤
  • 网站关键词推广做自然排名免费建站系统
  • 织梦做的网站在手机上显示上海关键词优化公司哪家好
  • 美食网站设计网站海口关键词优化报价
  • 自做网站需要多少钱兰州seo推广
  • 可以做游戏的网站有哪些方面舆情监控系统
  • 美食网站建设方案个人网站模板
  • 生产管理网站开发如何在百度发布广告
  • 手机网站建设用乐云seo整站seo优化
  • 网站开发行业爱站工具网
  • 龙胜做网站的公司网址模板建站
  • 二维码生成器怎么使用seo诊断
  • 顺德网站建设报价搜狗站长工具综合查询
  • 中国太空网站南昌seo数据监控
  • 做网站需要学php吗个人网站的制作模板
  • 做百度个人网站宣传产品的方式
  • python做网站快么成都公司建站模板
  • 跳转网站怎么做的seo评测论坛
  • 多语言操作网站站长工具名称查网站