无码av一区二区三区无码,在线观看老湿视频福利,日韩经典三级片,成 人色 网 站 欧美大片在线观看

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

第三人稱攝像機(jī)

2023-05-21 15:29 作者:莫末陌寞  | 我要投稿

這里例子的相機(jī)類似空戰(zhàn)吧,和AGA也不是很像。

攝像機(jī)的實現(xiàn)總體大差不差,這里通過這個案例說一些點(diǎn)。

1. 保持角色在相機(jī)內(nèi),并且有合適的大小。

????這里用到的參數(shù)有兩個:角色與相機(jī)的相對角度、角色與相機(jī)的距離。

????????這里求得角色與鏡頭的相對角度。

????????需要說一下,由于角色總會在鏡頭視錐體內(nèi),相對于鏡頭正方向,不會有大角度。

????????因此做的只是簡單的處理。下文看向綠球(target)部分會有完整的處理。

????????求角色與相機(jī)距離有兩種標(biāo)準(zhǔn),一種就是3D空間內(nèi)兩點(diǎn)的距離,這里用另一種,角色所在平面與鏡頭所在平面距離。兩個平面都是攝像機(jī)的視錐體切面。

??? ????這里用之前發(fā)的矩陣的方式計算的,直接把角色位置給鏡頭轉(zhuǎn)相機(jī)空間位置并取z即可。

2. 插值

????直接為變換賦值總是生硬的,使用插值是最常用的柔和化方式。

????這里的插值使用上文計算出的參數(shù),實現(xiàn)讓上文目標(biāo)。

????首先,實現(xiàn)讓鏡頭嘗試將角色保持在視錐體內(nèi)。

????這里需要解釋視錐體的尺寸由camera組件的FOV Axis、Field of View和屏幕比例共同決定。

????這里的邊界是一個縮小版的視錐體切面,是一個到達(dá)矩形的四條邊時產(chǎn)生變換的實現(xiàn)。

????如果想要實現(xiàn)觸碰到圓形、橢圓型等其他幾何圖形的邊界而發(fā)生變換,可以將“角色”的世界位置轉(zhuǎn)為屏幕位置,然后代入相應(yīng)圖形的公式即可。

保持距離

這里要說明的是“角色”對象在鏡頭跟隨時可能會產(chǎn)生“闖動”一樣的閃爍。

下文的Lerp是一種先極快后極慢的插值,如果插值運(yùn)算總是插值幾幀、不動幾幀,實機(jī)中就會表現(xiàn)為這樣的閃爍。

將插值開始時的速度設(shè)定的很慢,并且使插值基本不會滿速,可以很大程度避免這種情況。

最后,要實現(xiàn)鏡頭的旋轉(zhuǎn),對于LookAt盡量不去使用,鏡頭很少應(yīng)用z軸上的旋轉(zhuǎn),運(yùn)算也會變得復(fù)雜。

這里實現(xiàn)了一個插值的LookAt。

角度的運(yùn)算忠實的求兩條線段組成的角的夾角,如果不去else if 反向方向的線段,那么就需要有這樣的運(yùn)算。

正確的角度

需要調(diào)整的情況


第三人稱攝像機(jī)的評論 (共 條)

分享到微博請遵守國家法律
乌海市| 罗平县| 南部县| 余干县| 云浮市| 开封县| 蒙阴县| 湘阴县| 正阳县| 望江县| 宁武县| 嘉义市| 库尔勒市| 麟游县| 庆城县| 盐边县| 济宁市| 昌图县| 山丹县| 神农架林区| 温泉县| 五华县| 密山市| 江安县| 大庆市| 贵州省| 肇源县| 苍山县| 高州市| 和平区| 洛阳市| 读书| 鱼台县| 珠海市| 新平| 博兴县| 鄂温| 望江县| 双城市| 高密市| 米易县|