欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

摄像机的使用

程序员文章站 2022-03-26 17:23:14
...

1)笔记

1)摄像机的模式与成像的基本原理
  (1)在底层OpenGL的设置里面,我们并没有什么摄像机的概念,
     OpenGl是根据摄像机节点得到--》视角--》世界坐标--》摄像机坐标--》变换矩阵;
 
  (2)呈像原理: 
    虽然是3D物体,其实呈像出来,依然是2D画面;
    呈像的概念:将3D物体-->2D影像
 
  (3)2种呈像模式
     透视成像(原理:相似三角形成比例,远小近大):
       摄像机   屏幕    一些点
 
       长方形就是当前屏幕的比例
 
       投影的法则:
          已知3D坐标(x,y,z)-->z投影,
          已知屏幕到摄像机的距离,将3D点转化为像点,求解(x投影,Y投影),
            Y投影/坐标Y = Z投影/坐标Z --> y投影 = y * z投影/z
 
          投影之后都在一个平面上了,这样我们就把3维的点做成了2D平面中的像点
 
          一般3D游戏的成像都采用透视成像,远小 近大
 
          投影过程是: 
            从摄像机这里拉出来一条直线,与3D坐标连成线,与*面相交焦点,这个点就是3D的像点,
            我们就按照这一种方式把3D的点都转化为像点,这样就把3D的坐标点转化为了Z投影的这个平面上来了,
              所有的像点都是一致的
 
 
     正交成像(原理:所有的点xy都不变,直接z变换,没有远小近大的特点):
        很简单,是立方体的模式,像点直接就过来了;
        原来的X是多少 就得到多少,远处、近处物体都一样大,一般我们在2D里面使用;
        一些特殊的3D也需要;

2)creator 3D摄像机组件的常用参数:
  (1)摄像机节点(位置旋转缩放-->世界坐标到我们的摄像机坐标下的变换矩阵) + 摄像机组件实例(定义了成像模式和相关参数-->用于投影)
  (2)cc.CameraComponent常用参数:
    ClearFlags:清理屏幕-->每次绘制的时候,把屏幕底色刷一下,打底的颜色

       DNT_CLEAR: 不清理,原来有什么就是什么,直接绘制摄像机拍摄成像的画面到屏幕上

       SOLID_COLOR: 颜色填充

       SKYBOX: 天空盒-->是一种资源,就像天空在这里

     COLOR: 清理屏幕的颜色

     Depth: 

     FAR: 你的视野是有限的,你最远可以看到的距离

     NEAR:你的视野最近看到多少,这样局得到一个有限范围内的视角锥

     FOV:视野的视角,决定视野的开口

     Priority: 摄像机的Priority,我们的世界,可以同时放多个摄像机,就像NBA转播一样,只有一个屏幕画面,多份拍摄,哪个摄像机先绘制,
               哪个摄像机后绘制呢? 越小越先绘制

            再拖一个摄像机:发现第一个摄像机拍摄的没了,这时因为摄像机ClearFlags有个清屏的操作,选择DNT_CLEAR,则出来2个画面


            A Priorith 1  、B Proority 0,这样B先绘制,A再绘制时,把屏幕清理掉了,有个蓝色挡在这里

            A NOT_CLEAR   、B SOLID  这样就都绘制出来了

     Projection: 透视摄像机 或者 正交摄像机

     Rect: 小的直播;
          看另外人的视角,你的伙伴在干嘛干嘛


      TargetTexture: 可以将画面绘制到一张图片上,可以用于抓屏幕,实现截图功能

      Visibility: 可视化哪一些物体--》哪些物体可以被摄像机拍摄  和 `节点的Layer` 中指定相关,想拍射谁就指向谁 
          层次 `或`运算 而来: 1 << 7 | 1 << 6


3)第三人称摄像机(王者荣耀):
    摄像机跟着角色走,但是拍摄的角度不变,你可以去打怪,但是摄像机始终对准屏幕正*;
    主角移动,摄像机移动,但是不会因为脸的朝向而打到别的方向上去,不会改变摄像机的视野;
    别人在看你;
      如:RPG、ARPG游戏砍怪、王者荣耀、跑酷类游戏、贪吃蛇大作战等

  第一人称摄像机(拇指射箭):
    我们的摄像机会随着摄像机的朝向而变化,角色转到哪个地方,那么视野将会转到哪个地方, 摄像机安到自己的双眼上,鼠标移动了指向则不一样;
    摄像机是主角的眼睛,你在看世界;
      如:cs、守望先锋、赛车游戏、拇指射箭游戏

4)所有的物体,你要想看得见,必须在摄像机的范围之内