Raycasting光线投射

游戏开发人员可以使用光线投射,用于像瞄准,确定视线,测量距离之类的动作。Unity当中的Raycast的重载有很多。现在展示最常用的2中方法

bool Raycast( Vector3 origin , Vector3 direction , float distance ,LayerMask mask );

参数解释
 origin : 是光线的开始位置
 direction : 光线的方向
 distance : 光线行进的距离(可为null)
 mask : 确定光线会撞上哪一层(可为null)

如果要确定摄像机前确定是否有某个物体,可以用如下代码

void Update(){
    if (Physics.Raycast(transform.position , transform.forward , 10 )){
        print("there is something in front of the camera!");
    }
}

注意此代码放在camera中

另一个

bool Raycast( Vector3 origin , Vector3 direction , out RaycastHit hit , float distance );

这个重载方法使用了一个RaycastHit类型的参数 , 它是光线碰撞到的对象

void Update(){
    float dirX = Input.GetAxis("Mouse X");
    float dirY = Input.GetAxis("Mouse Y");
    transform.Rotate(dirY , -dirX , 0 );
    UptateRaycastHit();
}
void UpdateRaycastHit(){
    RayCastHit hit;
    if( Physics.Raycast( transform.position , transform.forward , out hit ) ){
        Distroy( hit.collider.gameObject )
    }
}
时间: 2024-10-10 04:50:49

Raycasting光线投射的相关文章

体绘制(Volume Rendering)概述之4:光线投射算法(Ray Casting)实现流程和代码(基于CPU的实现)

转自:http://blog.csdn.net/liu_lin_xm/article/details/4850630 摘抄“GPU Programming And Cg Language Primer 1rd Edition” 中文 名“GPU编程与CG语言之阳春白雪下里巴人”     算法流程 图 47 展示了使用光线投射算法进行体绘制的实现流程. 首先要渲染出正向面深度图和背向面深度图,这是为了计算射线穿越的最大距离,做为循环采样控制的结束依据:然后在顶点着色程序中计算顶点位置和射线方向,射

光线投射算法与光线跟踪算法

原文:http://blog.csdn.net/changbaolong/article/details/8461704 光线跟踪计算机算法的一般描述 为了生成在三维计算机图形环境中的可见图像,光线跟踪是一个比光线投射或者扫描线渲染更加逼真的实现方法.这种方法通过逆向跟踪与假象的照相机镜头相交的光路进行工作,由于大量的类似光线横穿场景,所以从照相机角度看到的场景可见信息以及软件特定的光照条件,就可以构建起来.当光线与场景中的物体或者媒介相交的时候计算光线的反射.折射以及吸收. 光线跟踪的场景经常

Voreen(三) 光线投射参数介绍

本篇介绍光线投射的第二个个制Pass,光线合成的参数,对应于第一篇总的流程介绍中的Processor SingleVolumeRaycaster.可设置的参数如下: 1,Sampling Rate 采样率 采样率越大,所需要的绘制时间越久,一般来说图像质量也高. 2,Use Interpolation Coarseness:用户交互时,是否绘制一幅二维小图,再映射到窗口大小.我们知道光线投射算法和绘制图像大小紧密相关,绘制一幅三维的小图,再进行二维窗口贴图,速度能够大大地提高. 3, Inter

体绘制(Volume Rendering)概述之3:光线投射算法(Ray Casting)原理和注意要点(强烈推荐呀,讲的很好)

转自:http://blog.csdn.net/liu_lin_xm/article/details/4850609 摘抄“GPU Programming And Cg Language Primer 1rd Edition” 中文 名“GPU编程与CG语言之阳春白雪下里巴人” 15.1 光线投射算法原理 光线投射方法是基于图像序列的直接体绘制算法.从图像的每一个像素,沿固定方向(通常是视线方向)发射一条光线,光线穿越整个图像序列,并在这个过程中,对图像序列进行采样获取颜色信息,同时依据光线吸收

Unity3D 5.x 交互功能 - 光线投射、碰撞设置

1,光线投射碰撞:第一人称视线在预置范围内(如3米)和看到的物体发生碰撞 ① 检测光线投射碰撞的脚本添加在第一人称FPSController上 #pragma strict private var currentdoor:GameObject; var hit:RaycastHit; function Update(){ var fwd = transform.TransformDirection (Vector3.forward); //当光线投射与任何碰撞器交叉时为真,否则为假 if(Phy

2-6 光线投射

unity的事件系统采用光线投射的机制,用渲染一条名为“光线(Ray)”的假想直线来检测在场景内与其他对象的冲突.输入模块使用(光线投射(RayCaster))组件,检测出应该为场景内那个对象发送的输入事件,光线根据指定屏幕坐标对场景内的对象进行光线投射,返回最接近画面的对象.在unity中,除了上面针对图像元素的Graphic Paycaster组件,标准的Raycaster还有针对3D对象使用的Physics Raycaster组件以及针对2D对象使用的Physics 2D Raycaste

游戏架构其九:光线投射和天空 { Raycast and Sky }

光线和天空能够大大增强游戏的画面效果,以下是实现: 1. 光线效果 Raycast #pragma once //======================================================================== // Raycast.h - implements a raycast into the rendered scene //==========================================================

微软Hololens学院教程-Hologram 230-空间映射(Spatial mapping )

空间映射地图是将真实环境的环境信息扫描到设备中,使得全息对象可以识别真实场景环境,从而达到可以将虚拟对象与真实世界相结合的效果.这节教程主要学习内容如下: 使用Hololens扫描空间环境并将空间数据导入到开发计算机中. 学习利用shader给空间网格赋予材质以便其更容易被发现. 使用网格处理方法将网格变成简单的平面. 对全息对象可以放置的位置进行放置提醒,使得用户更容易的放置. 开发遮挡效果,即当全息对象被真实场景中的物体遮挡时,你仍然可以看见它,只不过它是线框模式的. 项目文件: Downl

three.js鼠标交互

使用 2D 鼠标在 3D 场景中拾取对象 3D 的另一个重要的用户交互技术是对象拾取,即 3D 场景中的对象选择.输入设备是一个 2D 鼠标,用户实际单击的是在其中渲染 3D 场景的画布.因为当用户周绕场景运动时,渲染会发生变化,必须将鼠标的 2D 坐标动态地(在鼠标单击时)映射到场景的三维坐标空间,以确定哪些对象被选中. 在 2D 图形中,通过命中测试 来执行鼠标选择.对象拾取是 3D 中的一种命中测试形式.Three.js 通过提供一个 projector 辅助程序来简化对象拾取,它可以从