• Create Account

## Vision Raycasting

Old topic!

Guest, the last post of this topic is over 60 days old and at this point you may not reply in this topic. If you wish to continue this conversation start a new topic.

2 replies to this topic

### #1Medo3337  Members

891
Like
0Likes
Like

Posted 28 June 2013 - 09:27 AM

I'm currently developing vision raycasting for FPS game, I have few questions:

1. How many ray is accurate to detect vision from a tank?

2. How many ray for each character?

3. Should I calculate the distance against EVERY model and create rays at each model if it's close enough?

4. If the model is a character the ray will start from his eyes, however, if it's a tank, from where the ray should start?

5. How do I determine the exact ray target? (rayTo = target.position) --> I don't think this is good enough

I want to create something efficient and at the same time with high performance.

### #2Medo3337  Members

891
Like
0Likes
Like

Posted 28 June 2013 - 05:27 PM

### #3Norman Barrows  Members

6339
Like
1Likes
Like

Posted 29 June 2013 - 01:44 AM

1. How many ray is accurate to detect vision from a tank?

one from each station with an exterior view to each target in the station's arc of sight/fire within visible range. the type of tank will make a big difference. in a large WW1 tank, you might have 6 stations with exterior views, and FOVs of 30-45 degrees. in a newer tank, you might have something like a 90 degree FOV for the driver, a 30 degree FOV for the gunner, and a 360 degree FOV for the commander/spotter.

2. How many ray for each character?

one to each target in visual range. infantry has a 360 FOV.

3. Should I calculate the distance against EVERY model and create rays at each model if it's close enough?

that's what i do (sneak/stealth mode, fps/rpg game). but i only do the ray casting LOS/LOF (line of sight / line of fire) calculations if the player is in sneak mode (and undetected by hostiles).

4. If the model is a character the ray will start from his eyes, however, if it's a tank, from where the ray should start?

the visual orifice of the station. IE the driver's view slot in a WW2 tank, the persicope on top of the turret of a modern tank, the MG station's viewport on the side of a WW1 tank, etc.

5. How do I determine the exact ray target? (rayTo = target.position) --> I don't think this is good enough

for infantry, center to center may be good enough. to increase accuracy, you'd step up to something like checking 4 corners of a bounding box, or perhaps some type of bounding sphere type test. for tanks, if center to center isn't good enough (probably won't be), again you'd go BBox corners, etc. for a tank, bbox corners would be more accurate than bounding sphere.

with center to center vs bbox, almost half a target would be visible before the LOS/LOF test indicated so.

I want to create something efficient and at the same time with high performance.

by that i assume you mean accurate (hi performance) and fast (efficient).

accurate means bbox or the like. fast means...   well. write the code. if its not fast enough, then you optimize. of course, no harm with writing it with speed in mind from the get go... i think i just did a bressingham's kinda thing (step moving along a direction vector, checking for collisions with occluding objects/terrain).  speed was a concern, but i got it working ok. can't recall if i had to optimize. if so, must not have been much.

Norm Barrows

Rockland Software Productions

"Building PC games since 1989"

rocklandsoftware.net

PLAY CAVEMAN NOW!

http://rocklandsoftware.net/beta.php

Old topic!

Guest, the last post of this topic is over 60 days old and at this point you may not reply in this topic. If you wish to continue this conversation start a new topic.