三体吧 关注:494,351贴子:7,463,376

【科普向】裸眼3D商业化在即,楼主带你一文弄懂计算机图形学基础

只看楼主收藏回复

最近估计科技圈可能有大新闻了:以前一直存在于科幻电影中的裸眼3D技术,即将在未来的2-3年内走入市场。楼主应该是最早得到这个消息的人,因为楼主直接负责适用于裸眼3D屏幕的图像渲染程序的开发。昨天,楼主花一天时间,从一个计算机图形学方面的完全小白到写出了自己的第一个渲染引擎(CPU的,效率极低,目前还只能渲染顶点。原因以后会讲到)自此发现:很多计算机学中的高深概念,不过是纸老虎而已。这里就来现学现卖一下,也是抛砖引玉。如果有什么部分不正确或不严谨的,欢迎大佬批评指正。
自己写的渲染流水线镇楼~


IP属地:江西1楼2019-08-30 21:03回复
    支持!


    IP属地:浙江来自Android客户端2楼2019-08-30 21:05
    回复
      2025-07-27 10:19:34
      广告
      不感兴趣
      开通SVIP免广告
      是JAVA!


      IP属地:浙江来自Android客户端3楼2019-08-30 21:06
      回复
        首先来讲一下本文的目的:
        1.表示一下楼主除了写《黑暗森林》以外还干了其他事,为鸽找借口。。。
        2.吸引OpenGL和计算机图形学大佬,帮忙优化算法。
        3.给大家科普一下我所知道的计算机图形学知识。
        (好像蛮自私的。


        IP属地:江西4楼2019-08-30 21:08
        回复
          首先,第一部分,裸眼3D的原理。声明一下,这个裸眼3D和全息投影什么的无关,那个技术虽然已经有上百年历史了,还在前期研究中,设备也很贵,楼主高二狗,玩不起。。。但是,我们完全能用很简单,很粗暴的方法实现裸眼3D,成本也远低于一块高级电竞屏。


          IP属地:江西5楼2019-08-30 21:12
          回复
            赶上直播


            IP属地:广东来自Android客户端6楼2019-08-30 21:15
            收起回复
              我们以一个问题开始:什么是3D?俩眼睛看到的东西不一样就是3D。当然,人类还有焦距法(通过调节眼睛焦距,看哪个物体是清晰的反推物体距离,拍过照的人都知道),位移法(在人移动时,近处的东西移动快,远处的物体移动慢),尺寸法(近大远小,通过把实际大小与经验中的大小作比较,完全的基于经验和神经网络的“软件算法”),甚至使用前庭等感官确定自己在空间中的位置,然后整体判断。人类生成3D场景的过程,其实就是在糊弄这几个判断方法。其中任何现代电脑生成的三维场景都可以糊弄位移法和尺寸法,否则产生不了任何真实感。焦距法可以通过与本文及其类似的技术糊弄,但是要求高至少两个数量即的精度。而如果想要糊弄混合感官,那就不仅仅是光学设备的问题了,就接近《刀剑神域》或《黑客帝国》中的神经连接技术了。


              IP属地:江西7楼2019-08-30 21:26
              回复
                现在3D技术最主要的,就是糊弄这个双目视觉。就是要让两个眼睛看到的东西不一样。怎么做到?最一般的想法就是:上俩屏幕,一个眼睛一个。可是,大脑是很狡猾的,通过聚焦分析和逻辑判断,很容易知道“这里有个用心不良的人在用两块屏幕糊弄我”。因为眼睛同时看到了两个屏幕嘛!但是这样的尝试不是没有,就是所谓的“斗鸡眼3D”:把屏幕切开,显示两个视角的图像,然后override大脑的判断,强行把眼睛拉开,这样视角中就会出现四个屏幕,然后想办法把中间两个对起来,形成三个屏幕,然后再对焦,就完成了。


                IP属地:江西8楼2019-08-30 21:40
                收起回复
                  2025-07-27 10:13:34
                  广告
                  不感兴趣
                  开通SVIP免广告
                  所以,与其叫它“斗鸡眼3D”,不如叫“发散眼3D”,但是可能大家叫习惯了,就这么着了。
                  这个过程听上去简单,实际上要很多的训练,稍不留神就会回到四个屏幕的状态,用户体验极差。而且最难的一步在重新对焦的环节,因为大脑会持续认为对焦的距离和“对眼测距”的距离不一样,从而不断地调整。这就是所谓"辐辏冲突”。


                  IP属地:江西9楼2019-08-30 21:45
                  回复
                    为了解决这一问题,有人想到了:那把屏幕移到离眼睛非常近的地方,然后中间加一块隔板,眼睛不就不能看到两个屏幕了吗?
                    其实,这个方法糊弄的实际上是大脑的逻辑判断方面,就是不需要麻烦的对眼了,其他还真没什么改变。辐辏冲突照样来,还有一个新问题:眼睛无法对焦过近的物体。


                    IP属地:江西10楼2019-08-30 21:52
                    回复
                      看不清好办,近视眼不就看清了?问题是不能让全世界人民一夜间变成近视眼啊。那。。。怎么办?很简单!把正常人当成老花眼(远视),然后戴上老花眼镜(凸透镜),加个罩子就是现在的VR了,没别的。


                      IP属地:江西11楼2019-08-30 21:57
                      回复
                        VR就讲完了(话说这不是重点的部分就讲了这么多),成就达成:自嗨。
                        现在问题来了,如果不是自嗨,而是几十上百人的大阵仗的话,以上原理就统统行不通了。因为VR要求屏幕与人眼距离很近,总不能每个人发一个VR吧?那和这些人在家自嗨有什么区别?当然,斗鸡眼理论上是可以的,只要你找得到几十个人跟你一起斗上两个小时。


                        IP属地:江西12楼2019-08-30 22:02
                        回复
                          有人吗?感觉在用贴吧单机版。。。


                          IP属地:江西13楼2019-08-30 22:04
                          回复
                            挽尊


                            IP属地:河南来自Android客户端14楼2019-08-30 22:16
                            回复
                              2025-07-27 10:07:34
                              广告
                              不感兴趣
                              开通SVIP免广告
                              所以,3D电影上场了,首先是最老的红蓝眼镜,使用的是牛顿老爷爷的理论(色光理论)红色光透不过蓝色镜片,反之亦然,但是要在大脑中把红蓝的场景混合成原来的颜色,简直比斗鸡眼还要难。
                              于是就有了偏振眼镜。这玩意很神奇,看起来看上去是灰色的,戴上就能3D。关键在于,光线不仅分颜色,亮度,还有一个“方向”。“竖着”的光通不过“横着”的镜片,“横着”的光透不过“竖着”的镜片(倾斜45°的呢?是(cos45°)^2=0.5就是一半亮度,再讲下去就是量子物理了),而人眼对于光线的“方向”没什么概念,都是一样感觉,只区分亮度和光谱。就这样,用两台投影仪,一台用“横光”投左眼,一台用“竖光”投右眼,然后人戴上不同镜片的眼镜就可以了。问题在于,这货的3D效果不强,反正楼主每次去电影院戴这玩意主要是为了消除重影。然而楼主又有近视加散光,两个眼睛同时戴不下,所以经常要在“这种重影”和“那种重影”之间选择。


                              IP属地:江西15楼2019-08-30 22:17
                              收起回复