游戏开发论坛

 找回密码
 立即注册
搜索
查看: 2787|回复: 6

Texture放大,如何才可以不??袖???畹默F象

[复制链接]

414

主题

611

帖子

621

积分

高级会员

Rank: 4

积分
621
发表于 2007-11-30 00:09:00 | 显示全部楼层 |阅读模式
我有一??bmp file,尺寸??20x240,我要?⑺?糯?杀?可是??霈F????
???我要如何?定或?理,可以平滑化??的?象?
bilinear或trilinear可以解?Q????????

我的程式就是以下??镜墓?例:
2D 3D RPG角色扮演?? 程式??-使用DirectX\BookCode\Chap06\Draw2D

// The 2-D vertex format and descriptor
typedef struct {
  FLOAT x, y, z; // 2-D coordinates
  FLOAT rhw; // rhw
  FLOAT u, v; // Texture coordinates
} sVertex;
#define VERTEXFVF (D3DFVF_XYZRHW | D3DFVF_TEX1)

  // Create the vertex buffer and set data
  g_pD3DDevice->CreateVertexBuffer(sizeof(sVertex)*4, 0,      VERTEXFVF, D3DPOOL_DEFAULT, &g_pVB);
  g_pVB->Lock(0,0, (BYTE**)&amptr, 0);
  memcpy(Ptr, Verts, sizeof(Verts));
  g_pVB->Unlock();

  // Load the texture map
  D3DXCreateTextureFromFile(g_pD3DDevice, "Texture.bmp", &g_pTexture);

27

主题

418

帖子

455

积分

中级会员

Rank: 3Rank: 3

积分
455
QQ
发表于 2007-11-30 01:13:00 | 显示全部楼层

Re:Texture放大,如何才可以不??袖???畹默F象

你这么多积分,连这种基本问题也不会?!
灌水害人啊~~~~~

双线性过滤或者三线性过滤就行。
当然,理论上超高倍数的全屏反走样也是可以的。:D

414

主题

611

帖子

621

积分

高级会员

Rank: 4

积分
621
 楼主| 发表于 2007-11-30 02:22:00 | 显示全部楼层

Re:Texture放大,如何才可以不??袖???畹默F象

不好意思,我知道理?,但是?]?r???作,我是希望有??作??成功的人可以告?我,我的推?是?Φ?bilinear或trilinear).我在正式?始?r??作.真的不好意思,我很少回答?e人的???,我的?分99%都是?????.
"超高倍数的全屏反走样"???名?可以用英文??出???不好意思,我看不懂.

5

主题

755

帖子

757

积分

高级会员

Rank: 4

积分
757
发表于 2007-11-30 10:40:00 | 显示全部楼层

Re:Texture放大,如何才可以不??袖???畹默F象

你把一开始创建d3d的那个 MultiSampleType  全屏抗锯齿开了就很好了。不过你最好别这么做。你最好做更大的图向下去缩小。而不要反过来。这样的结果为了维持画面的清晰。却让GPU做更多的事情。相当于速度换空间。这和现在游戏开发之道背离了

27

主题

418

帖子

455

积分

中级会员

Rank: 3Rank: 3

积分
455
QQ
发表于 2007-11-30 20:25:00 | 显示全部楼层

Re:Texture放大,如何才可以不??袖???畹默F象

anti-aliasing
看了这个英文,你应该知道意思了吧?

虽然理论基础很重要,但一定要通过实践来巩固理论。

边学边做是最有效的。

2

主题

21

帖子

27

积分

注册会员

Rank: 2

积分
27
发表于 2007-11-30 22:23:00 | 显示全部楼层

Re:Texture放大,如何才可以不??袖???畹默F象

……
这和全屏抗锯齿没关系吧……

414

主题

611

帖子

621

积分

高级会员

Rank: 4

积分
621
 楼主| 发表于 2007-12-4 16:25:00 | 显示全部楼层

Re:Texture放大,如何才可以不??袖???畹默F象

OSFG,你好,???一下MultiSample的相???等绾卧O定?

  D3DPRESENT_PARAMETERS d3dpp;
  D3DDISPLAYMODE        d3ddm;
  BYTE *Ptr;
  sVertex Verts[4] = {
      {  50.0f,  50.0f, 1.0f, 1.0f, 0.0f, 0.0f },
      { 350.0f,  50.0f, 1.0f, 1.0f, 1.0f, 0.0f },
      {  50.0f, 350.0f, 1.0f, 1.0f, 0.0f, 1.0f },
      { 350.0f, 350.0f, 1.0f, 1.0f, 1.0f, 1.0f }
    };

  // Do a windowed mode initialization of Direct3D
  if((g_pD3D = Direct3DCreate9(D3D_SDK_VERSION)) == NULL)
    return FALSE;
  if(FAILED(g_pD3D->GetAdapterDisplayMode(D3DADAPTER_DEFAULT, &d3ddm)))
    return FALSE;
  ZeroMemory(&d3dpp, sizeof(d3dpp));
  d3dpp.Windowed = TRUE;
  d3dpp.SwapEffect = D3DSWAPEFFECT_DISCARD;
  d3dpp.BackBufferFormat = d3ddm.Format;
  d3dpp.EnableAutoDepthStencil = FALSE;
  
  d3dpp.MultiSampleType=D3DMULTISAMPLE_4_SAMPLES;
  d3dpp.MultiSampleQuality=4;

  if(FAILED(g_pD3D->CreateDevice(D3DADAPTER_DEFAULT, D3DDEVTYPE_HAL, g_hWnd,
                                  D3DCREATE_SOFTWARE_VERTEXPROCESSING,
                                  &d3dpp, &g_pD3DDevice)))
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2025-6-17 19:31

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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