请教一个OpenGL渲染一面墙一个窗的问题(看了Google SketchUp之后)

LKJ99 2011-01-21 05:58:34
看了Google SketchUp之后,给我觉得一种震撼感。
以前,我画“一面墙一个窗”或“一面墙多个窗”时,
都是使用窗的边界把墙分隔成4块小墙来画,然后每一块再贴纹理。

如图:
┏━━━━━━━━━━━━━┓
┃......┃...2...┃......┃
┃......┃.......┃......┃
┃......┣━━━━┫......┃
┃...1..┃中间是窗┃..3...┃
┃......┣━━━━┫......┃
┃......┃.......┃......┃
┃......┃...4...┃......┃
┗━━━━━━━━━━━━━┛

这样处理的结果是,每一面小墙之间,都结合不好,总是有边界,
例如:墙1和墙2之间、墙1和墙4之间、墙2和墙3之间、墙4和墙3之间都会有边界。

大家有没有办法让它们无缝的接合起来???

(中间的窗户,我是贴了另外一种纹理,并作半透明处理,看起来像个窗)
...全文
335 11 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
LKJ99 2011-01-26
  • 打赏
  • 举报
回复
结贴了,感谢renxu350

另:我们抹油美工、抹油3DMAX建模的人。
renxu350 2011-01-24
  • 打赏
  • 举报
回复
LZ如果坚决使用OGL不放手,不想使用D3D的话,要自己解析3DS、MAX文件,
3DS文件不带动画,MAX文件带动画,
有本书叫《OPENGL三维图形系统开发与实用技术(实用技术篇)》,重庆大学出版社清华大学出版社联合出版
讲了3DS、OBJ等模型文件的解析方法
renxu350 2011-01-24
  • 打赏
  • 举报
回复
另外画玻璃需要使用 ALPHA-BLENDING
renxu350 2011-01-24
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 lkj99 的回复:]

十分感谢 renxu350

1、建筑物有很多墙,每一面墙高度可能一样,但是,宽度有可能不一样,每一面墙
包含的窗的数量也不一样,怎么处理?

2、一般情况下,墙是不透明的,而窗是透明的,如果透过窗户,可看到室内环境,无疑
会给人带来更强的3D效果,这个怎么处理?

谢谢!
[/Quote]

不谢,不客气!

答1:这个完全是美术建模人员的工作,美工人员可以精确的使用3DSMAX等建模软件对模型展UV贴图,墙的贴图的高度宽度可以完全按照设计要求的高宽来贴图,但是OGL解析MAX、3DS文件比较复杂,如果是D3D就很方便,有个3DSMAX的插件可以直接从3DSMAX导出D3D程序使用的复杂的X模型文件

答2:解决了第1个问题,第2个问题就迎刃而解,直接画玻璃也简单,一般顶点的 RBGA = (0, 0, 0, 0.5);
VR_Lab 2011-01-24
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 renxu350 的回复:]
另外你这样手工直接在OGL中建模,效率很低,编程人员通常会感到无聊厌烦的,
谷歌、百度,一下MAX、3DS文件结构PARSING,也有直接的软件或插件,
然后你可以直接在诸如3DSMAX中把模型建好,贴好图,然后直接用你的OGL程序解析载入,
如果是D3D的话更方便,下载一个X文件导出的3DSMAX插件,
这样,导出的模型X文件直接就可以使用了
[/Quote]
+1
LKJ99 2011-01-24
  • 打赏
  • 举报
回复
十分感谢 renxu350

我此前使用OpenGL主要是为了3D渲染建筑实景,配合这个,还做了一个2D建筑物建模工具,
这个工具也很简单,就是分层勾勒出建筑外墙和内墙点坐标、以及窗、门等。

如果如你所说:“OPENGL中只要画1个墙就可以,最后再把完整墙(含窗)的图片贴图上去”,
那么,我还是会有2个疑问:

1、建筑物有很多墙,每一面墙高度可能一样,但是,宽度有可能不一样,每一面墙
包含的窗的数量也不一样,怎么处理?

2、一般情况下,墙是不透明的,而窗是透明的,如果透过窗户,可看到室内环境,无疑
会给人带来更强的3D效果,这个怎么处理?

谢谢!
LKJ99 2011-01-22
  • 打赏
  • 举报
回复
不是。

我不知道大家在这种情况下怎么处理?
在我处理一面墙,一个窗时,都会把墙分割成4块子墙后再渲染,
所以,只要贴上纹理,子墙之间或多或少总是有边界。

不知高手们都如何处理?
renxu350 2011-01-22
  • 打赏
  • 举报
回复
另外你这样手工直接在OGL中建模,效率很低,编程人员通常会感到无聊厌烦的,
谷歌、百度,一下MAX、3DS文件结构PARSING,也有直接的软件或插件,
然后你可以直接在诸如3DSMAX中把模型建好,贴好图,然后直接用你的OGL程序解析载入,
如果是D3D的话更方便,下载一个X文件导出的3DSMAX插件,
这样,导出的模型X文件直接就可以使用了
renxu350 2011-01-22
  • 打赏
  • 举报
回复
你这个难道是工业建模,对真实度非要要求到极致?
如果不是要求极致的真实度设计,我认为没必要设计成4块子墙+1块窗,
你直接预先用PS画好一面完整的墙,直接把窗户画在完整的墙上,
最后完整的墙的图片包含了画好的窗户,
然后再OPENGL中只要画1个墙就可以,最后再把完整墙的图片贴图上去,
你这个问题甚至连纹理混合都不需要
renxu350 2011-01-21
  • 打赏
  • 举报
回复
是不是UV坐标的问题 ?
LKJ99 2011-01-21
  • 打赏
  • 举报
回复
上图乱了:
如图:
┏━━━━┓
┃ ┃ ┃ ┃
┃ ┃ ┃ ┃
┃ ┣━┫ ┃
┃ ┃ ┃ ┃
┃ ┣━┫ ┃
┃ ┃ ┃ ┃
┃ ┃ ┃ ┃
┗━━━━┛

19,473

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 图形处理/算法
社区管理员
  • 图形处理/算法社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧