Jump to content

Zoom In Perspecitve Camera Limitations in VW?


Recommended Posts

We know VW10 (and below) doesn't support literal "cameras". My question is, do all the combinations of other tools in VW (translate view, zoom, set perspective) fully replace a camera -- albeit inconveniently?

I continually have problems with interior walls blocking my view of another room. Of course, I could make particular walls invisible -- but that's a pain. What I can't figure out is how to literally move that invisible, it's really there but you can't grab it "VW camera" INTO a room.

Sure, I can zoom in, or set the perspective, or "ALT-translate view - move mouse right" -- but all these seem to do is keep the camera in place while changing the camera lens to telephoto.

What they don't seem to do is literally move the camera into a room.

That is, I want a wide angle camera view from ACTUALLY close up. Moved inside of the obscuring interior wall. Which would then be behind me and no longer obscurant.

What I don't want is a view from far away, telephotoed in, that shows me the obscuring wall close up.

So... in summary -- is it ALWAYS possible using the VW tools to actually move the "camera" up close? Or is it often impossible?

VW really does need a camera tool (like the ones about everybody else has).

Link to comment

I sure agree that a camera would be more intuitive than the current setup. Until that day, I wrote, with help from other contributors, the following script that lets you manipulate the camera maybe more easily than the other tools. Play with it and maybe it gives you some ideas.

code:

{I made some tests with the following results: When I use the setting 'low

perspective' (don't know the correct expression in english, sorry), it's the

same as entering 24.41 for 'set perspective'. 'normal' is the same as 9.76

and high the same as 4.88. With Projection, proj = 1, the perspective is

always set to 9.76. And what I enter for viewDistance is substracted from

this value. (Control: GetView:offsetZ = 9.76 - Projection:viewDistance).

Procedure SetView:zDistance = 50, for example in perspective projection mode

is the same as Projection:viewDistance = -40.24. I don't know if there are

other circumstances influencing this results.

I hope this may help you a little bit.

Beat

}

Procedure Camera;

VAR

i :INTEGER;

yn :BOOLEAN;

h1 :HANDLE;

locationX,locationY,locationZ,targetX,targetY,targetZ,upX,upY,upZ, vd :REAL;

x1, x2, y1, y2, xx1, xx2, yy1, yy2 :REAL;

str :STRING;

BEGIN

{i := IntDialog('New zoom:','75');}

{ SetZoom(100);}

{param 1: 1 = perspective

param 2: 0 = wireframe

1 = unshaded poly

6 = hidden line

}

{if something is selected, use that, else assume a 50' bldg}

h1 := FSActLayer;

if (h1 = nil) then begin

xx1 := -25*12;

xx2 := 25*12;

yy1 := 25*12;

yy2 := -25*12;

end

else begin

while h1 <> nil DO BEGIN

GetBBox(h1, x1, y1, x2, y2);

if x1 < xx1 then xx1 := x1;

if x2 > xx2 then xx2 := x2;

if y1 > yy1 then yy1 := y1;

if y2 < yy2 then yy2 := y2;

h1 := NextSObj(h1);

end;

end;

locationY := -(xx2 - xx1);

locationZ := 5*12;

targetZ := 1*12;

str := StrDialog('Direction: N S E W:', 'S');

while not DidCancel do begin

UprString(str);

{vd := DistDialog('View distance value:',Num2StrF(400*12));}

vd := (xx2 - xx1) * 16;

Projection(1,0,vd,-400,-300,400,300);

if str = 'S' then locationY := -(xx2 - xx1);

if str = 'S' then locationX := 0;

if str = 'N' then locationY := (xx2 - xx1);

if str = 'N' then locationX := 0;

if str = 'W' then locationX := -(yy1 - yy2);

if str = 'W' then locationY := 0;

if str = 'E' then locationX := (yy1 - yy2);

if str = 'E' then locationY := 0;

yn := YNDialog('Set view automatically?');

if yn = TRUE then begin

locationZ := 5*12;

targetZ := 1*12;

end

else begin

PtDialog3D('Enter the 3D location:',Num2StrF(locationX),Num2StrF(locationY),Num2StrF(locationZ), locationX,locationY,locationZ);

PtDialog3D('Enter the 3D target:',Num2StrF(targetX),Num2StrF(targetY),Num2StrF(targetZ), targetX,targetY,targetZ);

end;

upx := 0;

upy := 0;

upz := 1;

SetViewVector(locationX*12,locationY*12,locationZ*12, targetX*12,targetY*12,targetZ*12, upX*12,upY*12,upZ*12);

ReDrawAll;

str := StrDialog('Direction: N S E W:', 'S');

end; {while not DidCancel}

END;

Run(Camera);

[/code]

Link to comment

The walkthrough tool moves the camera around the model or points a stationary camera in a different direction.

move forward - move backwards (cursor up/down)

look left - look right (cursor left/right)

with option pressed:

move up - move down (cursor up/down)

look up - look down (cursor left/right)

If one more way of moving the camera were added it would be great:

move left - move right

(perhaps with shift pressed cursor left/right)

Also if you could change perspective dynamically within the tool, it would add another level of quick control.

(perhaps also with shift key cursor up/down)

It took me a while to get the intuitive feel of using this tool but I now quickly navigate around models. I have to use the flyover tool to simulate the missing move right - move left.

Henry

Link to comment

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...