网页资讯视频图片知道文库贴吧地图采购
进入贴吧全吧搜索

 
 
 
日一二三四五六
       
       
       
       
       
       

签到排名:今日本吧第个签到,

本吧因你更精彩,明天继续来努力!

本吧签到人数:0

一键签到
成为超级会员,使用一键签到
一键签到
本月漏签0次!
0
成为超级会员,赠送8张补签卡
如何使用?
点击日历上漏签日期,即可进行补签。
连续签到:天  累计签到:天
0
超级会员单次开通12个月以上,赠送连续签到卡3张
使用连续签到卡
08月27日漏签0天
unity3d吧 关注:116,495贴子:561,012
  • 看贴

  • 图片

  • 吧主推荐

  • 视频

  • 游戏

  • 1 2 3 4 5 6 7 8 9 10 下一页 尾页
  • 575回复贴,共24页
  • ,跳到 页  
<<返回unity3d吧
>0< 加载中...

【伪直播】看完星际穿越,迫不及待想做一个虫洞演示程序

  • 只看楼主
  • 收藏

  • 回复
  • _17th_
  • Script
    11
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼

剧照镇楼


  • _17th_
  • Script
    11
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
首先简单科普一下什么是虫洞:
虫洞是宇宙中可能存在(或者可能人为设计出的)连接两个遥远空间的管道,如图所示

假如我们生活在红色的空间中(图中红色部分虽然画的是2D的面,但代表了一个广阔的三维空间,因为作图的原因省掉了一维)我们想去离我们非常遥远的蓝色空间,利用图中的一种高于三维的拓扑结构,可以让我们找到到达蓝色空间的捷径。


2025-08-27 07:01:57
广告
不感兴趣
开通SVIP免广告
  • _17th_
  • Script
    11
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
我的想法是这样的,
首先准备两个太空的天空盒 A,B,制作为两个Cubemap。
然后假设虫洞在坐标原点,即虫洞中轴线的四维方程为{x=0; y=0; z=0},
设定一个摄像机初始位置,过摄像机位置向虫洞中轴线作垂线叫做准线。
现在需要求出偏离准线角度范围[0, pi]的所有光线分别经过虫洞力场后出射光线的空间及角度。
有了这个角度集合,我便能将平面应用于空间,以准线在空间中建立一个极坐标系,求出任何方向光线经过虫洞力场后的最终出射方向,
这样我就能根据屏幕像素坐标求出入射光的极坐标,通过模型算出出射光极坐标。
最后再将出射方向传入shader,在Cubemap上查找出屏幕上应该出现的颜色。

图中是三条角度为0,10,20度的入射光以及出射光。


  • _17th_
  • Script
    11
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
另外有一个重要的思想是把虫洞连接的空间拆分为上下两部分,
这样就不需要用到4D空间的复杂概念,而是变成了两个三维空间,
然后我们就可以用Vector4的xyz代表三维坐标,w代表在哪个空间,1为A空间, -1为B空间,
而虫洞内管围成的一个无定义的球体则作为光线是否留在原空间的Trigger

(图画得有点丑。。见谅)


  • _17th_
  • Script
    11
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
没多少听众啊,没事,LZ继续。。
为了展示光线在扭曲的空间中如何运动,楼主特意做了一个小玩意。。
大家还知道圆锥怎么制作吧?
用一个圆片,沿圆心到圆上任意线段剪一个缝,然后断开的两边往中间走,做成圆锥。

注意上面的直线(手画的,有点弯,见谅)
光沿着直线运动,但是如果空间是弯曲的呢?

这是锥角为120度左右的圆锥,看,原本是直线的光线扭曲了!

这是卷曲得更厉害的空间
图片来自:_17th_的百度相册

已经有童鞋说丑了...
但是美丽的东西往往来源于平凡..


  • Jerry20110434
  • Shader
    12
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
大神啊
   --不管怎么样也要凑足十五字♪


  • _17th_
  • Script
    11
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
圆锥面所形成的“坡度”毕竟是平的,
而虫洞的“坡度”是弯曲的,从最外面0度到中间90度,进入另一个空间后又从90度到0度。
如图:

(LZ这次好好画还不行么。。)
但是这样又在另一个维度出现曲率,不过LZ这里不想去讲非欧几何。。
只是假设了一个“坡度”的概念
虫洞的定义如下:

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

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


  • _17th_
  • Script
    11
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
光线在虫洞作用下,路线发生偏转,其路线我们叫做“测地线”,
但是这个测地线方程。。楼主表示,以楼主的渣数学。。估计是计算不出来了。。
不过没关系,没有方程,我们还可以用步进推演的方式去模拟光子通过虫洞立场的路线。
光子的定义:

推演方法:

PhotonDeduction2D 推演方法只对 Position3.y = 0 的光子有效。
但是尽管如此,只要知道一个平面上的光子如何运动,建立极坐标,根据虫洞的对称性,就可以推算出空间中所有光子的运动路径。
接下来就要研究这个函数怎么写了。。
先吃个饭。。


2025-08-27 06:55:57
广告
不感兴趣
开通SVIP免广告
  • RUI1993123
  • Unitor
    1
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
吃好了没


  • 谦谦
  • Shader
    12
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
高端的不行!!!!


  • _17th_
  • Script
    11
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
首先,
利用推演法,模拟出了光子在圆锥形空间扭曲中的运动轨迹,即测地线:

大致思想为:将光子运动方向拆分为平行于母线的方向和垂直于母线的方向,
由于锥形空间为直纹空间,平行于母线的方向便是直纹方向,垂直于母线的方向则为弯曲,
这种情况比较简单,
最终测地线的曲率半径为:
dist / sin(fieldRad) / (dot(v,curve)^2)
dist为点到锥顶的距离,fieldRad是之前定义的“坡度”,v是光子速度,curve是垂直于母线的方向向量。


  • _17th_
  • Script
    11
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼

再发一张多个光子在锥形力场下的运行轨迹


  • Bin_Zero1021
  • Animator
    9
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
太高大上,像我这种渣物理,渣数学 看不懂咋办


  • Bin_Zero1021
  • Animator
    9
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
你是我偶像


登录百度账号

扫二维码下载贴吧客户端

下载贴吧APP
看高清直播、视频!
  • 贴吧页面意见反馈
  • 违规贴吧举报反馈通道
  • 贴吧违规信息处理公示
  • 1 2 3 4 5 6 下一页 尾页
  • 575回复贴,共24页
  • ,跳到 页  
<<返回unity3d吧
分享到:
©2025 Baidu贴吧协议|隐私政策|吧主制度|意见反馈|网络谣言警示