签到

05月05日
尚未签到

共有回帖数 0

    奈何情殇

    等级:
    看完星际穿越,迫不及待想做一个虫洞演示程序


    的想法是这样的,

    首先准备两个太空的天空盒 A,B,制作为两个Cubemap。

    然后假设虫洞在坐标原点,即虫洞中轴线的四维方程为{x=0; y=0; z=0},
    设定一个摄像机初始位置,过摄像机位置向虫洞中轴线作垂线叫做准线。

    现在需要求出偏离准线角度范围[0, pi]的所有光线分别经过虫洞力场后出射光线的空间及角度。
    有了这个角度集合,我便能将平面应用于空间,以准线在空间中建立一个极坐标系,求出任何方向光线经过虫洞力场后的最终出射方向,

    这样我就能根据屏幕像素坐标求出入射光的极坐标,通过模型算出出射光极坐标。
    最后再将出射方向传入shader,在Cubemap上查找出屏幕上应该出现的颜色。


















    FieldRadius为力场作用半径(坡度为0°时)
    CoreRadius为内管半径(坡度为90°时)
    FieldAngle函数为空间中一点的虫洞坡度算法
    (这是一个人为假设的函数)
    大致曲线如下


    按照代码中的设定
    观察者离虫洞距离为40时,开始进入力场,此时坡度为0,一旦观察者离虫洞距离为10,则坡度为90°(代码中为89°,防止错误),并且进入另一个空间,速度及面向的方向则被镜像。




    首先,
    利用推演法,模拟出了光子在圆锥形空间扭曲中的运动轨迹,即测地线:












    光谱我已经生成好了,这是其中10~40的一段






    楼主 2015-10-28 20:46 回复

共有回帖数 0
  • 回 帖
  • 表情 图片 视频
  • 发表

登录直线网账号

Copyright © 2010~2015 直线网 版权所有,All Rights Reserved.沪ICP备10039589号 意见反馈 | 关于直线 | 版权声明 | 会员须知