贴图程序进展

从2.28号到现在,在休息,在此先整理下之前的情况,对问题和要做的内容进行一下梳理。

首先,把之前的问题稍做下总结,上次提到OpenGL版本这块,我的是1.1版本,所以就只能用顶点数组来实现了,否则效率很差,本来以为顶点数组只能用静态的数组实现,我打错特错了,普通的数组就可以了,这样就算频繁的进行修改,也可以满足我的需求了,这就解决了我一大技术问题,这是最主要的,顶点数组用glDrawArrays或者glDrawElements来绘制,前者基于原先的顶点数组的范围,后者指定新的索引数组,更具灵活性,参见这,一篇更详细的在这,之后有很多的扩展,功能更强大,当然,需要高点的OpenGL版本,然后在NeHe的教程里看到了一份关于顶点数组的代码,借鉴了一下,把我原先用显示列表的方法,全改成顶点数组,就在相应的地方,添加进我需要操作的数据,顶点数组,三角面的顶点索引,法向量数组,相应纹理的坐标数组,每次分两个步骤还绘制,普通面的绘制,加上纹理面的绘制,然后就完成了。这样子,效率大大的提高了,感觉有一个数量级了,然后就完了,改代码的时候比较痛苦一点(这个顶点数组的方法指的就是把点的信息一块绘制出来,也就是说纹理,颜色,法向量都是基于点的,也就说模型必须是光滑的,纹理共用的一张贴图要有意义),同时也出现了个很诡异的问题,就是加载两张图片的时候,纹理映射出现了Bind的问题,感觉纹理没Bind成功,找了半天找不出错误,今天发现只要在Bind使用之后,再用TexEnv来设置映射环境参数,就好了,和上次的那个问题一样,不知道为什么。实现了曲线的选择这个功能,用一个点栈去维护就可以了,后来才被老师指正这个只能选定凸多边形的集合,好吧,作为一个菜鸟,渐渐习惯了,恩,大致就这个样子了。

然后,上一张图来演示下目前的进展情况:

Mid

接着,罗列下存在尚需思考的问题:

1. 代码结构紊乱,毕竟是在开源结构上进行的开发,现在导致,又需要他们的数据结构,又需要我的数据结构,所以两边都运行,这样从效率上还是结构上都是很差的,想着要重写,因为快受不了了,可是担心后面的需求导致的变化,会影响更大,先留着他们的数据结构,说不准会用的上,最后才重新规划设计下代码数据结构好了。

2. 基于Doc-View的架构与对象上的数据存放问题,必须使得多文档要一致,即要确保多文档是有效的。因为我现在在有点功能上,多文档等同于单文档了,没有很好的理解文档/视图这个架构。

最后,列举下需要做的:

1. 三角面有些不是朝外的,需要预处理修正下,才菜单上添加下这个功能。

2. 添加视图的方向,包括6个正视图,轴侧视图,3点指定一个平面,做投影。

3. 判断遮挡关系,确保只贴最外层的三角面。

4. 对图像进行预处理,选取一个有效区域。

5. 对象从X方向和Y方向上,可以进行对齐设定。

6. 可以看到剖视图,这样就可以贴内胆。

7. 可以拾取点或三角形,设置颜色。

8. 支持最少三种文件,obj/wrl/ply。

9. 可以完成多张的贴图工作,支持多张图片的显示,用TabControl什么的。

10. 使用四叉树,链表等数据结构,支持实时的拾取和判断遮挡关系的优化,加速。

11. 支持点在凹多边形内的判定。

PS: 十分感谢老师的指导~

转载于:https://www.cnblogs.com/litstrong/archive/2011/03/06/1972321.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/298654.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

get到一个生气后的牵手方式!太可爱了

1 公司新聘的出纳,大家看看尽不尽职?2 柯基:腿长有啥用啊3 男友力爆表的小螃蟹4 一滴水的下落,原来如此有条有理5 内容太过真实6 get到一个生气后的牵手方式7 你们那里的这条街叫什么?你点的每个赞,我都认真…

python flask框架是什么_Flask框架是什么?带你安装运行第一个Flask程序

1 了解框架 Flask作为Web框架,它的作用主要是为了开发Web应用程序。那么我们首先来了解下Web应用程序。Web应用程序 (World Wide Web)诞生最初的目的,是为了利用互联网交流工作文档。 1.1 一切从客户端发起请求开始。 所有Flask程序都必须创建一个程序实…

还在做互联网创业梦?醒醒!

阅读本文大概需要7分钟。最近国家在互联网领域动作不少:在线教育K12领域被全面整治、阿里被罚款182亿、巨头的垄断和无序扩张遭遇严格限制,大部分互联网上市公司股价一泻千里。身边不少大佬原本身价几千万的期权股票,一瞬间近乎清零&#xff…

把 14 亿中国人民都拉到一个微信群里在技术上能实现吗?

全世界只有3.14 % 的人关注了爆炸吧知识作者丨Max 链接:zhihu.com/question/293021546/answer/487157602把 14 亿中国人民都拉到一个微信群里在技术上能实现吗?先说结论:也许可以实现,但你会什么都看不见。根据 2017 年《微信数据…

使用C#为.NET Interactive开发自定义扩展

在前面的文章中,我们介绍了如何在.NET Interactive notebook绘制图表和执行SQL。那么,能不能为.NET Interactive开发交互功能呢?今天,我们就来演示如何实现。创建项目新建类库项目Demo1Extension,需要引用Nuget包Micro…

zabbix snmp自定义OID nginx监控实例(55)

为什么80%的码农都做不了架构师?>>> 为什么要自定义OID? 前面的文章我们已经讲过zabbix如何使用snmp监控服务器,但是他有一个很明显的局限性:只能监控定义好的OID项目,假如我们想知道nginx进程是否在运行…

(转帖)对抽象编程:接口和抽象类

[你必须知道的.NET] 第二回:对抽象编程:接口和抽象类-王涛 [你必须知道的.NET] 第二回:对抽象编程:接口和抽象类 Author:王涛 Date:2007-4-12 ©2007 Anytao.com 转贴请注明出处,留此信息。…

实验四 图的遍历算法设计与实现

一、实验名称:图的遍历算法设计与实现 二、实验目的: 1.掌握图的深度优先遍历的算法。 2.掌握图的广度优先遍历的算法。 3.实验章节:算法设计与分析 第四章 三、实验内容。实验问题和程序运行结果 第一部分 广度优先遍历算法 完善下列程序&am…

为什么魂斗罗只有128KB却可以实现那么长的剧情?

全世界只有3.14 % 的人关注了爆炸吧知识现代程序员A和1980年代游戏程序员B的对话:A:为什么你用128KB能实现这么多画面、音乐、动画?B:128KB还不够么?其实为了表现力已经相当奢侈了,加了很多不重要的细节。A…

asp.net core 6 新特性,支持HTTP/3 端点发布

???? 序言Http3 协议构建在UDP的基础上,是的,就这么神奇,以前被誉为不稳定大神的UDP,现在承担起可靠通讯协议的底层协议。为了消除UDP的不确定性,在UDP协议之上,新增了QUIC协议。使用QUIC协议代替TCP协…

浮点数赋值给整数_初学者专题:变量和赋值

作者:老齐对于初学Python者,除了看书(《跟老齐学Python:轻松入门》或者《Python大学实用教程》,均为电子工业出版社出版)、或者看视频(网易云课堂、CSDN上均有老齐的视频课程),还要进行专题性总结。比如本文&#xff0…

分析android动画模块[转]

2019独角兽企业重金招聘Python工程师标准>>> 作者: 刘鹏 日期: 2009-03-07 Android 平台提供了两类动画,一类是 Tween 动画,即通过对场景里的对象不断做图像变换(平移、缩放、旋转)产生动画效果;第二类是 Frame 动画,即…

当你的手被502粘住了要怎么做?

1 看清楚,这是大裤衩子▼这才是 jk 裙▼2 天天看你们骂海王男友其实我有一个河神男友▼3 当你的手被502粘住了怎么办?▼4 不能指望食堂阿姨了自己动手丰衣足食▼5 当你被别人夸奖时▼6 宅在家里也能拍大片▼7 是我本人没错了▼你点的每个赞&#…

excel 如何替换带上标的文字_如何在Excel中批量提取中文汉字和英文字母

1. 在数据源的右边分别命名新的两列为“中文名”和“英文名”,然后将数据源复制到“中文名”这一列。2. 为了确保英文名字可以连在一起,这里我们在有空格的英文名字中间添加一个“-”。选择“中文名”下所有数据源,按CtrlF,点击“…

国内最大.NET平台重金招募中 你竟然还不知道?

各位路过的捎带眼瞅见的不小心翻到的英雄好汉请留步~让小编来带你康康这个胆敢号称国内最大的.NET的平台到底有何惊人之处一难道是因为它有--“最敢”的生态开放平台技术驱动商业创新,数字引领企业的未来,明源云通过多年专业积累,融合多种创新…

GChemPaint-绘制化学分子布局

Toy Posted in AppsRSSTrackbackGChemPaint 是专门用来绘制 2D 的化学分子布局软件,它合用于 GNOME 桌面。经由历程它所绘制的化学分子布局可以被嵌入到其他的应用程序中。Download GChemPaint 0.7.91版权声明: 原创作品,允许转载&#xff0c…

软件开发有哪些规范和标准_深圳APP软件开发的流程是什么?

深圳APP软件开发的流程是什么?APP软件开发是根据用户需求构建软件系统或设备的软件部分的过程,是一项系统工程,包括需求捕获,需求分析,系统设计,系统实现和系统测试。APP软件通常以某种编程语言实现&#x…

第十六周项目3-有相同数字?

输入两个数组中要存放的元素个数及元素值(不超过50个),判断这两个数组中是否有相同的数字。 当两组数中有相同数字时,输出YES,否则,输出NO /* * Copyright (c) 2014,烟台大学计算机学院 * All right reserv…

一键对频对讲机好吗_对讲机的基础知识你都知道多少呢?

对讲机或PMR是手持式便携式无线电,可在单个共享频带上使用无线电波进行无线通信。这使Walkie Talkies成为以低成本与大范围人群保持联系的最有效方法之一。双向无线电功能强大,易于使用且易于使用。它们特别适合在户外或在手机或平板电脑过于精致或超出信…

女儿学会走路了,是不是该教她学Python了?

1 哈哈哈,20个人其实都是精准客户▼2 搬沙发一定不要穿的太正式!▼3 横竖都是死让我先打完这场游戏先▼4 只要你学会这支舞你就是你妈的好朋友▼5 你能体会到这只阿拉斯加的惆怅吗?▼6 这双鞋一看就是全球限量有钱都买不到的那种▼7 我…