Apple 一直是被模仿的对象,现在手机上的 UI 明显的比起 Windows Native 的 UI 要炫的多,旋转,3D UI,动画 效果等。无意间查找到经典的 Apple CoverFlow 效果,一查原来连维基百科里都有记录,
也发现也有人使用 OpenGL 在 Windows 上实现了:如下:
国内的:http://blog.csdn.net/beidoustudio/article/details/4090806
国外的:http://sourceitsoftware.blogspot.com/2008/06/coverflow-update.html还有 Android 上的 Wave Launcher 程序的效果:
http://ultimatefaves.com/
意识到,现在软件的 UI 和用户体验也越来越重要了,手机上的 UI 实现明显比 Native 的方法简单很多,而传统的 MFC 又显得太过于臃肿,手机平台 Android/iPhone 底层应该是封装了不少,自己写上层代码简单很多,但自己在 Windows 上用 Native 方法实现底层,除了 3D 库如 D3D/OpenGL 之外,还需要考虑和思考很多问题1:如何做出比较炫的动画,实现更好的人机交互,最简单的,如 360 桌面(虽然我觉得是很傻的软件),把手机上的桌面弄到 Windows 上,最直观的例子,当用户点击翻页,1,2,3 时,如何使翻页的效果更加平滑?更加舒服?我想直接用 MoveWindow 肯定不行。问题2:有哪些比较经典特效实现,Apple 也好,Android 也好,游戏中的特效也好,我主要指 UI 这块的,比如 Apple 经典的 CoverFlow(惭愧直到今天才知道有这个名词),还有哪些更多的名词,有相应平台上的实现代码就好,最好有人在 Windows 上做过移植。问题3:需要使用 Native C/C++ 实现,而不是 WPF(据说 Windows 8 要抛弃 WPF 了),底层的渲染库不重要 DirectX/OpenGL 这个不是很重要,重要的是思路。现在 UI 要新的变革了我想,至少要实现移动设备上的 UI 效果的话,传统窗口方式肯定不行,这么多窗口,别的不说刷新就弄死你,Windows 8 还没出来,Windows 8 的 Jupiter。大家能否一起讨论下?

解决方案 »

  1.   

    用Web UI来做,JQuery有很多特效感觉,应该可以达到你部分要求其次就是等Windows8吧,Metro UI应该很不错
      

  2.   


    用 Web UI 来做,那么 Web UI 可以和 Native 混合使用吗,比如上面说的 CoverFlow,图片加载用 Native 方式,旋转的效果使用 Javascript 来做,这样可以吗?
      

  3.   

    Web UI本身就是一个浏览器控件,它里面打开HTML+JS+CSS,类似于浏览器打开,只要浏览器能支持的页面,它就可以
      

  4.   


    就是为了做这个买的OPENGL的书  ... 结果还木做完就放弃了 呵呵 
      

  5.   

    PC上资源比手机上宽松多了,没有手机上能做,PC上不能做的。 LZ玩过仙剑吗,当初DOS上都能做出那么漂亮的动画,何况现在。
      

  6.   

    to jennyvenus:被你这么一说,倒是觉得 Apple 有些界面是有点怪异,不知是不是因为 Windows 用的久了的原因
      

  7.   

    并不看好基于MFC等特定系统的UI和基于贴图的简单UI设计
    目前UI的趋势是界面表现部分和功能部分分开,具体的讲,界面部分多采用Script进行设计,如JavaScript、HTML 5或ActionScript...等,而功能部分多采用C/C++等合适的Native的实现方式;当然也可以像Android一样完全采用JavaScript的形式;这样做的原因是使UI界面设计部分的门槛降低 ----- 及甚至一个美术设计师即可以完成UI的设计;
    这样设计的最大优势是各尽其职、各自发挥自己的特长,我并不赞同由程序人员去进行UI设计 ----- 这不是他们的专长;这方面实际Adobe的Flash作得非常不错,只是从长远的发展上来看,我更看好HTML 5;Window 8中的Blend事实上也是这样思路的体现;事实上这样其后台涉及的知识面要比传统UI更为复杂:高效的图形渲染技术(动态)、虚拟机技术(如JIT技术等)....目前,我也是正在进行这方面的研究,有时间欢迎交流 ---- 我的观点未必正确。目前我的详细进展可以看我的Blog:blog.csdn.net/tomsoftSee: http://hi.csdn.net/attachment/201107/6/0_13099608735ZQi.gif
      

  8.   

    怎么越听越像我做的库呢,我不正是干了这些事吗,2D效果有了,3D效果也有了,脚本也有了,COVERFLOW也有了(而且是纯脚本实现的)
    http://blog.csdn.net/jameshooo/article/details/6340623。看起来研究这个的方向还是对的,只是缺乏推广细胞。3D那玩意儿是用起来爽心、看起来倾心、说起来动心、做起来闹心啊。以我过来人的眼光看楼主贴的几个图,第一个图是假3D,模拟的,后面两个图是真3D。
      

  9.   


    啊,完蛋了完蛋了,真是高手如云啊,发现好些人早已经实现了,都是牛人啊!to tomsoft:我昨晚后来想想,其实采用Script进行设计的话,如果我需要自己渲染一些 3D 的效果的话,恐怕做不到吧。to redui:你是牛人啊,我早就注意到你的资源啦,哈哈,雨寒工作室,是吧!
      

  10.   

    也不是啥牛人,都是搞着好玩,至今连个像样的DEMO都没有,汗你不会想着让脚本来渲染3D吧,那样性能大打折扣。我的思路是:渲染模块负责所有基础的渲染工作,把跟渲染相关的部分分类后全对象化。对象化的东东公开给脚本引擎,脚本设置对象的属性或者调用方法用来改变对象的状态,渲染模块根据对象的状态进行相应的渲染。3D场景中的特效通过着色器完成,着色器代码中的变量也公开给脚本引擎,这样通过脚本改变着色器变量就达到了脚本改变渲染效果的效果。着色器代码中的变量通常都叫做“艺术家参数”,分离出来专供美工调整,NV和ATI提供的3D设计工具都具备这个能力,我把它分离出来是方便脚本设置。脚本的运算量不能太大,否则影响性能。这就是脚本要做的事情(仅改变对象的状态),别让它直接参与渲染就行了。3D真的很难缠,至今还有一些问题困扰着我,比如反走样。DX提供的4xMSAA技术(多重反走样)压根解决不了问题。最近在INTEL社区瞎逛,看了INTEL提供的MLAA反走样技术,貌似比MSAA性能高不少,我可能会用这种技术,因为它是开源的,我可以按照自己的需求修改代码,看看能不能解决问题。
      

  11.   


    额,我层次不够和你讨论了,我是刚接触 3D 了,用 OpenGL 的,最近由于工作的需要才开始学习,因为需求比较高,所以在不断的找资料,有个同事在带我了,我们也是需要实现 3D 渲染的库,而且封装的要够实用,够易用才行,具体的实现也不是我说了算,我也水平不够了
    先做一些资料查找和思考,再继续深入
      

  12.   

    这个是天才的设计,可是没发行版对齐进行推广
    两年没启动过我的gentoo了,不止现在更新如何了,
    compiz fusion稳定性有改进没 o(∩_∩)o...
      

  13.   

    3D这东西,用在windows普通程序上,前景堪忧,3D出来这么多年,至今少有成熟的3D普通应用程序,基本上都是游戏在用。
    做个通用性的3D界面库,至今没有发现成功的。并且对于使用的人,门槛也太高了。界面引入脚本这种相对门槛比较低的技术,对于使用的人,也是一种麻烦。大部分使用界面库的人,也仅仅是会用mfc做个对话框工程。那么,商业的界面库的使用门槛,也应该定义在这一级别,甚至低于这一级别。否则作为技术含量过高的界面库,除了作者,就没人会用了。这正是好多优秀的界面库,不成功的原因。
      

  14.   


    再多说几句,基于贴图并不是简单的设计。现在国内市场上,几个商业的界面库,基本都是你说的这种基于贴图的库。界面和功能分开,和使用mfc还是脚本没有任何关系。那种复杂的界面技术,一定要由国际上比较牛的几家公司开发(像微软、google这种),才能引领程序员去使用。个人即使开发出来,也没有任何用处。像wpf这种技术,即使是微软,都推广的不是很成功。
      

  15.   


    说的很好,大家一起讨论交流下!LibUIDK 作者嘛,呵呵,都是牛人!
      

  16.   

     & study..... 
     
      

  17.   

    这种效果很平常了,qml轻松的可以实现。
    http://hi.csdn.net/attachment/201110/13/6157840_131848106887Zx.png
      

  18.   


    使用 QT?我说的是 Native 的,不能依赖于其它的 FrameWork!
      

  19.   

    以前windows和linux那些绚烂的3d桌面效果,楼主没有见识过吗?
      

  20.   

    这早已不仅仅是编程的问题了。要做出好的UI,一个人必备Windows窗体编程全面的技能,和美工师的修为,以及自己独立的风格。
      

  21.   

    楼主 可以看一下 flex 和html5 纵容是依托与浏览器的 呵呵 UI做出来很炫的 
    现在还有3D的 GIS  楼主可以看一下。
    这个是趋势
      

  22.   

    MFC已经开始被微软慢慢的抛弃,至于3D,相对下要比MFC、QT难度大。其实界面是不应该太受到重视的东西,用script也好,用3D也好,用什么都可以,我个人更倾向Native
      

  23.   

    之所以WINDOWS PC 平台上的界没有手机上的"炫",我想主要有以下几个原因:一、PC平台以工作为主,所以界面设计以实用为导向,并不需要多"炫"的界面,只要能高效完成工作就行了。二、传统的PC大多以鼠标+键盘操作,再加上PC的屏幕是手机屏幕的几十倍,想想如果把界面设计像手机那样"炫",鼠标不停的在这么大块的屏幕上拖来拖去操作会很累人,降低工作效率。三、操作PC需要长时间关注屏幕上关心的内容,过于花的界面会使大脑频繁对颜色及屏幕变化的处理,使人眼神经疲劳,严重的还可能出现呕吐。
      

  24.   

    Web 是趋势,现在效果越来越好了
      

  25.   

    我囧了,这么多楼没人提到WPF么? Windows Presentation Foundation,微软对MFC的UI反思后的结果,开发各种炫的UI易如反掌。当然,要求有.net Framework。
    要native的你就找个第三方的UI库用吧,或者要求不高的话自己写一个,也不见得有多难。
      

  26.   


    嘿嘿,我在30楼结束时提到wpf了。可是wpf不太成功,用c#的话,可以考虑,使用托管C++,有点那个。------------------------------------------------------------------------
      

  27.   

    Script和渲染没有关系,渲染是由核心层完成,如当前我的程序支持硬件加速的OpenVG渲染,当然也支持软件渲染,未来会考虑支持OpenGL/OpenGL ES渲染;所以即使未来考虑3D支持,多数不会直接使用Script去进行渲染;
    另外有些人担心Script的执行效能偏低,这里解释如下:多数UI解释型的Script就已经足够了,除非希望界面层作更为复杂的逻辑工作 ----- 如甚至变态的一定要自己去用Script渲染图形(因为我底层支持自绘);为了应对这样的需求,新版本已经计划加入JIT的支持(使用ECMA262标准);因此,我不认为这样效能还有问题 ----- 至少应对UI是没有问题了。当前我的程序有几个部分组成:图形渲染层(当前支持软件渲染和硬件加速的渲染)、Script处理、其他杂项----如XML、Video/Audio/Image Codec等的支持;未来重点除了Script效能的提升外,支持硬件加速的图形渲染将是主要工作(矢量、Filter....)
      

  28.   

    DELPHI的Firemonkey是一个很好的UI,完全脱离Windows,是本机代码,性能强
      

  29.   

    解释一下,在这里我并没有去诋毁使用MFC作界面设计的,对我来说不管用什么只是工具不同而已;
    因为我自己是做嵌入系统的,因此我的程序主要刻意会去注意跨平台,因此,我不可能使我的程序依赖与MFC或GDI+、DirectX等技术;为了实现跨平台的需要,在软件渲染版本我会实现抗锯齿、Color Dither及其他所有的矢量渲染 ---- 这样在不具有硬件加速的情况下,即使只有FrameBuffer,我的程序也可以保证顺利执行;
    对于,是不是使用静态图形,同样我认为也是需求不同 ---- 因为我是做消费类得嵌入系统,用户需要的是够Cool、够炫的应用,如果只是像PC一样只是Show一张静画我相信很难满足客户的需求;事实上我早期也是在PC上进行界面设计的,从Window95开创图形界面到现在,PC上的界面没有太多的变换---毕竟PC仍是以更为专业的形式对人,而非一个纯消费类产品 ---- 所以还是应用层面不同;但这种局面在PC游戏上已经有所改变,如ScaleForm设计的UI就绝不会只有几张静画,其中可能会嵌入视频等等;而且在Windows 8中,针对UI设计,微软提供了Blend软件----这个个人感觉就是一个早期的Flash MX,所以您说的情况已经在变;
    最后,我非常赞同您说的话,个人搞UI设计“凶多吉少”,但我喜欢作技术,至少我希望我Happy,如果能赚到钱更好;
      

  30.   

    目前我在尝试使用Flash技术作UI设计,理由我不去解释了;
    给大家一个视频:http://www.scaleform.com/videos/video.php?vid=gfx4
    目前已知的有至少800个著名的游戏是使用Flash技术,包括大家熟悉的星际、虚幻...等等当前我在进行这方面的研究(实际已经有几年时间了),大家可以在我的Blog中看到最新的状况;当然我也很期望和大家进行交流