首页 > 编程语言 >CSE 470 WebGL应用程序

CSE 470 WebGL应用程序

时间:2024-04-14 14:23:39浏览次数:26  
标签:控件 CSE 创建 WebGL js 470 SOR 曲面 使用

CSE 470家庭课业#3:灯,相机,行动!讲师:D.Hansford博士重要图片:您将开发一个显示两个旋转表面的WebGL应用程序。曲面将使用Phong照明模型进行渲染,使用精确的顶点法线,着色将在片段着色器中进行。该应用程序将允许不同的照明、材质和观看效果。这些程序功能的详细信息如下所述。概念:
构建参数化曲面和曲面法线。
建立三角测量数据结构。
设置Phong照明模型的参数。
在片段着色器中设置Phong着色。
绘制多个对象。
使用LookAt和透视功能。
通过实现移动灯光,获得更多动画体验。
实现交互和事件处理程序。
细节:
旋转表面(SOR)
创建两个SOR,一个圆柱体和一个有趣的形状供您选择。您的设计不能是圆锥体或球体,而且必须具有一定的曲率。(不要使用演示程序中的球体。)设SOR是[0,2*Pi]中的域θ上的s(t,θ)和[a,b]中的t,其中a和b是实数。SOR由生成曲线(母线)定义,g(t)=[f(t),t,0],它是xy平面中的曲线。(提示:使曲线以x轴为中心。)第一个坐标f(t)是一个函数。曲面定义为s(t,θ)=R(θ)g(t),其中R是绕y轴的旋转。示例:对于圆柱体,可以选择f(t)=1.0、a=-1和b=1。您将离散化域,评估SOR(创建三维点),并构建三角测量数据结构。在编写曲面求值函数时,将t-和theta方向上的求值次数作为输入变量,以便于测试。除了在SOR上创建三维点外,还将计算这些点的精确法线。(请参见幻灯片37的“照明和着色”ppt。)使用指向顶点和法线阵列的“索引”阵列创建三角测量数据结构。将使用drawElements绘制三角测量。(有关实现示例,请参阅cube.zip和cubev程序。有关数据结构的描述,代 写CSE 470 WebGL应用程序请参阅第5周的几何体第2部分注释。请参阅第4周的“使用drawElements的提示”。)对于每个SOR,创建一个minmax框。这将有助于确定“注视”参数、透视参数和良好的灯光位置。将这些最小最大值框打印到控制台。
小贴士:先把它用于气缸。
组织数据的两个选项:1)将圆柱体和自定义曲面的所有数据放入一组数据结构中。绘制时,可以使用偏移指针访问所需的数据块。OR 2)当用户选择新的SOR时,重新加载缓冲器。使用带有片段着色的Phong照明模型渲染曲面。
表面构造代码必须位于名为lastName_geometry.js的文件中,该文件与初始化和事件处理程序是分开的。材料


创建两种不同的材质。
创建用户界面以在材质之间切换。
指定这些材料的名称来表征它们,而不是“材料1”。
材料名称应与用户界面一起显示在HTML页面中。
将灯光颜色设置为白色。
将灯光的初始位置设置为在眼睛处。
为灯光编程两个选项:静止在眼睛处和绕SOR旋转。

建模和查看
使用MV.js中的LookAt函数。
使用MV.js中的透视功能。将纵横比初始化为1,并且的字段视野(fov)为60度。确定合理的远近参数。
滑动器将允许用户调整fov。
您必须使用提供的通过鼠标旋转对象的代码。(这将修改LookAt参数。)用户交互
所有控件(如按钮和滑块)都必须附有描述性文本。根据功能将控件组织到HTML页面中的各个部分,并添加标识这些部分的文本。SOR可以通过点击和鼠标移动进行旋转。
控件允许在两个SOR之间进行选择。
控件允许用户在两种不同设置之间更改材质特性。滑块允许亮度因子从1更改为1000。(有关滑块示例,请参见rotatingSquare3程序。)控件允许用户在10度和100度之间改变中心凹。(您可以选择增量。)打印到
打印的每个值都必须附有描述该值的文本。

控制台

两个SOR的最小-最大盒子尺寸。
最初的Eye、At、Up。
最初的观点论点。
初始灯光位置。
一般指南
SOR的评估次数应能产生光滑的表面,默认光线位置应在眼睛处。气缸应为默认SOR。在画布旁边,显示您的姓名、日期、程序描述和使用的资源。创建(至少)三个文件:lastName_hw3.html、lastName_hw3.js和lastName_geometry.js。在每个文件的顶部添加您的姓名和日期。
将课业交给Canvas。
额外信贷
如果你做了额外的学分,在html页面中的一个单独的部分标记上这个额外功能的控件。让我们知道你做了什么!可以显示曲面法线。如果您为此创建了第二个顶点着色器,请告诉我们。你可以添加更多的灯光。可以使用添加到Phong照明模型的发射颜色来创建灯光对象。你可以设置SOR的动画——创建舞蹈或通过线性贴图应用变形。

标签:控件,CSE,创建,WebGL,js,470,SOR,曲面,使用
From: https://www.cnblogs.com/quanwang/p/18134100

相关文章

  • ES7.17.20连接时报错:java.lang.NoSuchMethodError: org.elasticsearch.client.Request
    1.报错详情:java.lang.NoSuchMethodError:org.elasticsearch.client.RequestOptions$Builder.removeHeader(Ljava/lang/String;)Lorg/elasticsearch/client/RequestOptions$Builder; atco.elastic.clients.transport.rest_client.RestClientOptions.addBuiltinHeaders(RestCli......
  • MCD4700信息技术
    MCD4700信息文凭技术1.MCD4700计算机系统导论,网络与安全——12024作业2——过程和MARIE编程指令目的过程和程序使计算机做我们所做的事情希望他们做。在本作业的第一部分,学生将调查他们计算机上运行的进程。第二个部分是关于MARIE汇编语言的编程。这将让学生展示他们对处理器工作......
  • python 操作 Elasticsearch7.x版本
    目录python操作Elasticsearch7.x版本1.连接Elasticsearch2.索引操作3.文档操作4.查询/搜索文档4.1body和query参数4.2其他查询示例python操作Elasticsearch7.x版本需要先安装这个库pip3installelasticsearch==7.9.1,python版本为3.7及以上这个是elasticsearch库......
  • Elasticsearch之-Django框架集成
    目录Elasticsearch之-Django框架集成一、elasticsearch-dsl库的使用二、与django框架集成Elasticsearch之-Django框架集成需要安装的库:安装:pip3installelasticsearch-dsl一、elasticsearch-dsl库的使用#示例fromdatetimeimportdatetimefromelasticsearch_dslimpo......
  • Elasticsearch 创建自定义分析器(4)
    一.自定义分析器当内置分析器不能满足时,可以创建一个自定义分析器,自定义分析器(analyzer)由:1)0或多个charactcrfilter字符过滤器2) 1个tokenizer分词器,将文本切分为分词  3)0或多个tokenfilter令牌过滤器,是属于分词后再过......
  • ElasticSearch
    1.ES是什么https://www.elastic.co/cn/https://www.elastic.co/cn/elastic-stack/1.从事运维,开发,大数据的人员需要学习ElasticSearch数据库2.需要配置日志分析架构,配置ELK技术栈lucene搜索引擎库https://lucene.apache.org/core/ApacheLucene™是一个完全用Java......
  • GD32F470II的UART+DMA方式的使用笔记
    GD32官方给的DEMO真的是屎一样的存在,仅展示最基本简单的应用案例,拿到实际工程中参考性非常低,也就基本的配置过程具有有限的参考性。在这种环境下,使用UART+DMA的方式完全是瞎用,感觉能用的函数都给用上。UART&DMA配置如下:1/*!2\briefconfigureUSARTDMA3......
  • :error=>"Elasticsearch Unreachable: [http://192.168.100.44:9200/][Manticore::Soc
    [2024-04-10T14:02:09,005][WARN][logstash.outputs.elasticsearch]AttemptedtoresurrectconnectiontodeadESinstance,butgotanerror.{:url=>"http://192.168.100.44:9200/",:error_type=>LogStash::Outputs::ElasticSearch::HttpClient::Pool......
  • GD32F470_GP2Y0A02YK0F 红外激光测距传感器 避障测距20-150cm模块移植
    2.4红外测距传感器GP2Y0A02YKOF是夏普的一款距离测量传感器模块。它由PSD(positionsensitivedetector)和IRED(infraredemittingdiode)以及信号处理电路三部分组成。由于采用了三角测量方法,被测物体的材质、环境温度以及测量时间都不会影响传感器的测量精度。传感器输......
  • GD32F470_VL53L0X激光测距传感器模块移植
    2.15VL53L0X激光测距传感器VL53L0X是ST公司推出的新一代ToF激光测距传感器,采用了第二代FlightSenseTM技术,利用飞行时间(ToF)原理,通过光子的飞行来回时间与光速的计算,实现测距应用。较比上一代VL6180X,新的器件将飞行时间测距长度扩展至2米,测量速度更快,能效更高。除此......