游戏开发论坛

 找回密码
 立即注册
搜索
查看: 2781|回复: 5

关于图形变形的问题

[复制链接]

3

主题

16

帖子

16

积分

新手上路

Rank: 1

积分
16
发表于 2007-5-16 18:31:00 | 显示全部楼层 |阅读模式
比如我初始化一个600×600的窗口, 在上面画了一个圆饼(camara在Z轴上,只看到一个圆盘),当我点击右边的最大化按钮,最大化窗口时,圆盘也变成4:3的椭圆了,如何消除这个问题呢?

6

主题

307

帖子

309

积分

中级会员

Rank: 3Rank: 3

积分
309
发表于 2007-5-16 20:37:00 | 显示全部楼层

Re:关于图形变形的问题

D3D?DDraw?

D3D改变窗口大小时要Reset设备

3

主题

16

帖子

16

积分

新手上路

Rank: 1

积分
16
 楼主| 发表于 2007-5-17 14:25:00 | 显示全部楼层

Re: Re:关于图形变形的问题

bracelet: Re:关于图形变形的问题

D3D?DDraw?

D3D改变窗口大小时要Reset设备

D3D 9里面 不是可以自动reset么?
device.DeviceResizing+=new CancelEventHandler(device_DeviceResizing);

void device_DeviceResizing(object sender, CancelEventArgs e)
        {
            e.Cancel=true;
        }
sf_2007517142430.jpg

180

主题

3511

帖子

3520

积分

论坛元老

Rank: 8Rank: 8

积分
3520
发表于 2007-5-17 15:25:00 | 显示全部楼层

Re:关于图形变形的问题

Perspective 的参数,需要修改,每当"窗口的宽高比"发生变化.

3

主题

16

帖子

16

积分

新手上路

Rank: 1

积分
16
 楼主| 发表于 2007-5-17 20:33:00 | 显示全部楼层

Re:关于图形变形的问题

我在自己的setupCamara函数里面里面有:
device.Transform.Projection = Matrix.PerspectiveFovLH((float)Math.PI / 2, this.Width / this.Height, 1.0f, 100.0f);
初始化时也没问题 因为 width 和 height相等 都是600;

每当窗口宽高比发生变化的PerspectiveFovLH 应该在device.DeviceResizing事件里面再重写一遍吧
可是还是变形啊

3

主题

16

帖子

16

积分

新手上路

Rank: 1

积分
16
 楼主| 发表于 2007-5-17 21:06:00 | 显示全部楼层

Re:关于图形变形的问题

问题初步解决了一下......换用一个orthoLH投影矩阵 问题就好了

但我想让圆随着窗口增大也增大, 比如窗口最大化后, 左右两边会出现较粗的黑边, 上下两边的黑边较细, 但圆还是充斥整个窗口, 难道得手动调 View 吗?
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

作品发布|文章投稿|广告合作|关于本站|游戏开发论坛 ( 闽ICP备17032699号-3 )

GMT+8, 2026-1-26 10:41

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表