日常笔记-常用图形/数学/物理相关以及UE4的实现例子

脑子比较渣,记不住公式

这里列出一些自己常用到的数学或物理等应用场景的基础公式和基于UE4实现的的例子(BP或C++),备查

(随缘更新)

数学: 

  

仿射变换和射影变换:

  问.Actor A到Actor B的方向v:

    相当于线段AB的单位向量v

    1.线性插值:

      v = (B - A) / (∥ B - A∥)

    UE4实现(BP):

    

 

  问.点P到直线L1的距离D

    直线L1上任意一点P1,单位向量为V1

      距离D = (P - P1) · (P - P1) - ( ( (P - P1) · V1)^2 / V1 · V1 )

    问.两直线或平面的交点P3或交线L3

    Note:克莱姆法则:https://en.wikipedia.org/wiki/Cramer%27s_rule

    交点:

      L1:单位向量V1,L1上任意一点P1  有方程式:P3 = P1 + kV1

      L2:单位向量V2,L2上任意一点P2  有方程式:P3 = P2 + tV2

      首先假设,线段 L1和L2相交,即V1叉乘 V2不等于 0 

                      

      可推到线性方程组未知数(k,t):  (V1 · V1 )k - (V1 · V2 )t = V1(P2 - P1)

                        (V1 · V2 )k - (V2 · V2 )t  = V2(P2 - P1)

      利用克莱姆法则可得k与t的解.

      带入L1或L2可得P3

    交线:

      Note:V1和V2必须为单位向量

      公式:L3 = ( ( V1 · P1 ) (V1 - (V1 · V2)V2 ) + ( V2 · P2 )( V2 - (V1 · V2)V1 ) ) ÷ (1 -  (V1 · V2)^2 )

    UE4例子:

交点:

  wait

交线 :

 

 

  问.Actor A绕任意轴Axes(u,O)旋转θ度:求Actor A的新位置 P:

    u是Normal Vector(单位向量) 

    O是旋转轴上任意一点 Vector.

    通常常用几种方式实现:

      1.带入旋转公式(点乘(·)和叉乘(×)):

        那么P = O + ( Cosθ )( A - O ) + (1 - cosθ)(( A - O ) · u)u + ( sinθ )u × ( A - O )

      2.四元数(Slerp):

        wait

      3.矩阵:

        3D旋转矩阵

        

 

      UE4实现:

        Ue4已经实现,3D旋转矩阵:参考UKismetMathLibrary::RotateAngleAxis或FVector::RotateAngleAxis

 

几何:

  wait

图形:

  Q.点P是否在平面S上:

  方式一,用度量公式:

    假设平面S法线N和平面上任意一点O

    当 (P-O) · N = 0 则 点P在平面S上

  栗子:

    wait

材质公式相关:

  Q.图形学-Frenel函数材质球实现方式:

 
调个材质 大概公式 自发光= 自定义边光颜色* ((1-法线与视角方向点乘)的 自定义幂次方 ) 这个是比较简单方法
 
模型的法线与视角方向 角度越大 表示是约边缘地方 反之不是  角度越大点成越小  1 - 点成 越大  然后 再次 幂次方 更大 所以颜色看起来 边缘就有金边了

栗子:

 

转载于:https://www.cnblogs.com/linqing/p/5000408.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值