小编Rei*_*eek的帖子

我认为*.DDS文件意味着可以快速加载?

好吧,所以我试图权衡使用各种不同纹理压缩技术的专业人士和骗子.我花了99.999%的时间使用DirectX为Windows机器编写2D精灵游戏.

到目前为止,我已经看了纹理打包(SpriteSheets)与alpha修剪,这似乎是获得更多性能的好方法.现在我开始看看它们存储的纹理格式; 目前所有内容都存储为*.PNGs.

我听说*.DDS文件很好,尤其是当与DXT5(/ 3/1取决于任务)压缩一起使用时,因为纹理在VRAM中保持压缩状态?还有人说,因为它们已经是DirectDraw Surfaces,所以它们加载的速度也快得多.

所以我创建了一个应用程序来测试它; 我将该行调用20次以下,在每次调用之间释放纹理.

    for (int i = 0; i < 20; i++)
 {
  if( FAILED( D3DXCreateTextureFromFile( g_pd3dDevice, L"Test.dds", &g_pTexture ) ) )
  {
   return E_FAIL;
  }

  g_pTexture->Release();
  g_pTexture = NULL;
 }
Run Code Online (Sandbox Code Playgroud)

现在,如果我尝试使用DXT5纹理,它需要比在简单的*.PNG中加载要长5倍.我听说如果你不生成Mipmap,它会变慢,所以我仔细检查了一下.然后我改变了我用来生成*.DDS文件的程序,切换到NVIDIA自己的nvcompress.exe,但没有任何效果.

编辑:我忘了提到文件(*.png和*.dds)都是相同的图像,只是以不同的格式保存.(相同大小,alpha数量,一切!)

编辑2:当使用以下参数时,它的加载速度提高了近2.5倍,并且消耗的VRAM少了很少!

 D3DXCreateTextureFromFileEx( g_pd3dDevice, L"Test.dds", D3DX_DEFAULT_NONPOW2, D3DX_DEFAULT_NONPOW2, D3DX_FROM_FILE, 0, D3DFMT_FROM_FILE, D3DPOOL_MANAGED, D3DX_FILTER_NONE, D3DX_FILTER_NONE, 0, NULL, NULL, &g_pTexture )
Run Code Online (Sandbox Code Playgroud)

但是,我现在正在失去纹理的所有透明度,我看了DXT5纹理,它在Paint.NET和DirectX DDS Viewer中看起来很好.但是当装入所有透明度时变成纯黑色.ColorKey问题?

编辑3:忽略最后一点,我是愚蠢的,在我的"快速示例"中,我忘了在D3DXSprite-> Begin()上启用Alpha-Blending.卫生署!

compression directx textures directdraw dds-format

4
推荐指数
1
解决办法
5964
查看次数

DDS 有经纪人吗?

我一直在尝试阅读 DDS 标准,尤其是 OpenSplice,但我对架构感到疑惑。

DDS 是否需要运行代理或任何特定的守护程序来管理不同方之间的消息交换和协调?如果我只是启动一个进程发布某个主题的数据,然后启动另一个订阅同一主题的进程,这是否足够?是否有任何理由可能需要运行另一个进程?

或者,它是否使用 UDP 多播在发布者和订阅者之间进行某种自动发现?

总的来说,我试图将其与传统的队列架构(如 MQ 系列或 EMS)进行对比。

如果有人可以帮助阐明这一点,我将不胜感激。

谢谢,

法赫姆

data-distribution-service

4
推荐指数
1
解决办法
3445
查看次数

如何在ANT脚本中使用source命令加载文件?

使用Linux环境和java,我有配置文件应该在从控制台执行eclipse应用程序之前配置,

这是源的OpenspliceDDS配置文件,位于以下目录中

source /../HDE/x86.linx2.6./release.com --->在命令行执行

但我需要在ANT脚本中执行源命令,任何人都可以帮助我解决这个问题.

示例:

我已经为命令创建了属性标记

<property name="release.path" location="/opt/HDE/x86.linux2.6/release.com"/>

<exec executable="source ${release.path}" spawn="true">

</exec>
Run Code Online (Sandbox Code Playgroud)

java ant data-distribution-service

4
推荐指数
1
解决办法
1562
查看次数

包含XML的T4模板导致解析错误

我已经为我的web和Windows项目的配置文件创建了T4模板.我可以成功生成主web.config,以及其他环境的所有配置,即web.ci.config等.但是,我无法摆脱我的主tt文件上的错误,例如:

  • 字符"#",十六进制值0x23在XML名称中是非法的.
  • 字符'<',十六进制值0x3c在XML属性值中是非法的.
  • 意外的XML声明.XML声明必须是文档中的第一个节点,并且不允许在其前面显示空白字符.

我应该错过一个xml架构或引用,但是什么?


我的文件看起来像:

<#@ template debug="true" hostSpecific="true" #>
<#@ output extension= ".config" #>  
<?xml version="1.0" encoding="utf-8"?>
<configuration>
...  
    <add key="FileUploadFolder" value="<#= this.FileUpload #>" /> 
...
</configuration>
<#+ 
   string FileUpload="\\\\server\\folder";
#>
Run Code Online (Sandbox Code Playgroud)

这是截图

.net xml t4 config transformation

4
推荐指数
1
解决办法
1737
查看次数

在OpenGL中加载DDS DXT1,崩溃

我的代码有什么问题吗?当我执行glCompressedTexImage2D()时程序崩溃(来自Windows XP崩溃消息的东西...)

我试图加载没有mipmap的DDS图像,图像格式是DDS DXT1

我错过了一些包含文件,或者我做错了什么?我从以下网址下载了包含的文件:http: //sourceforge.net/projects/glew/files/glew/1.5.1/glew-1.5.1-win32.zip/download

我在与.exe相同的文件夹中有glew32.dll.

下面的代码只有我更改的部分才能加载DDS图像:

#pragma comment(lib, "glew32.lib")
#include <GL\glew.h>
#include <GL\gl.h>


...


typedef struct {
    GLuint dwSize;
    GLuint dwFlags;
    GLuint dwFourCC;
    GLuint dwRGBBitCount;
    GLuint dwRBitMask;
    GLuint dwGBitMask;
    GLuint dwBBitMask;
    GLuint dwABitMask;
} DDS_PIXELFORMAT;

typedef struct {
    GLuint dwMagic;
    GLuint dwSize;
    GLuint dwFlags;
    GLuint dwHeight;
    GLuint dwWidth;
    GLuint dwLinearSize;
    GLuint dwDepth;
    GLuint dwMipMapCount;
    GLuint dwReserved1[11];
    DDS_PIXELFORMAT ddpf;
    GLuint dwCaps;
    GLuint dwCaps2;
    GLuint dwCaps3;
    GLuint dwCaps4;
    GLuint dwReserved2;
} DDS_HEADER;

DDS_HEADER DDS_headers;


...


FILE …
Run Code Online (Sandbox Code Playgroud)

c++ opengl directdraw dds-format

2
推荐指数
1
解决办法
5166
查看次数

DXT压缩与原始PNG产生相同的文件大小

我正在尝试将纹理转换/压缩为DDS格式,并使用原始PNG进行DXT压缩.我在Mac上,所以我正在使用Graphic Converter(虽然我也尝试过其他工具).但无论我使用哪种DXT级别(DXT1-5),文件大小都与原始PNG大致相同.

compression textures webgl dds-format

2
推荐指数
1
解决办法
2169
查看次数

是否可以创建变量值类型?

Kevlin Henney撰写的Valued Conversions论文给出了所谓的变量值类型功能的动机,以及C++实现的概述.这是一个很好的阅读,它涵盖了我希望在C#中提供的内容:一种可以保存不同值类型值的通用类型.

我在C#中找不到这样的东西.关于SO的一些类似的问题有不令人满意的答案和评论,如"这可能不是你想要的".这让我感到惊讶,因为它看起来像是相当常见的功能.Henney的C++ boost ::任何类都被广泛使用.

是不是可以在C#中创建此功能?


编辑:回答其中一个答案,我不认为泛型会做的伎俩.使用泛型要求开发人员知道Variant变量所持有的值类型,并且该类型对于该特定Variant变量也变为不可变.但Variant我所说的类型应该能够容纳不同的类型.例如,函数Variant ReadValue()可以从文件中读取条目,解析它,相应地填充Variant值,然后返回它.调用者事先不知道返回中将包含哪种类型Variant.

c# variant

1
推荐指数
1
解决办法
1238
查看次数

如何创建 RPG IV 以从 DB2 插入和检索数据

我是 AS/400 的新手,熟悉数据描述规范 (DDS) 语句。我有两个使用数据描述规范创建的表。

我需要编写两个 RPGLE 程序来插入和检索这些表。

恩珀斯档案

                                         REF(HRFREF)      
         R EMPR                                       
           EMPID     R               REFFLD(IDNO)     
           NAME      R                                
           DOB       R                                
           STS       R                                
         K EMPID                                      
Run Code Online (Sandbox Code Playgroud)

部门档案

                                         REF(HRFREF)  
         R DEPTR                                  
           DEPTID    R               REFFLD(DEPID)
           DEPNM     R                            
           STS       R                            
         K DEPTID                                 
Run Code Online (Sandbox Code Playgroud)

rpgle ibm-midrange

0
推荐指数
1
解决办法
4628
查看次数