问题列表 - 第27047页

DirectX 9 HLSL与DirectX 10 HLSL:语法相同吗?

在过去一个月左右的时间里,我一直在努力学习DirectX.所以我一直在DirectX 9和10之间来回混音.我在两者中看到的一个主要变化是如何在图形卡中处理矢量.

我注意到的一个重大变化是你如何让GPU识别你的结构.在DirectX 9中,您可以定义灵活顶点格式.

您的典型设置如下:

#define CUSTOMFVF (D3DFVF_XYZRHW | D3DFVF_DIFFUSE)
Run Code Online (Sandbox Code Playgroud)

在DirectX 10中,我相信等效的是输入顶点描述:

D3D10_INPUT_ELEMENT_DESC layout[] = {
    {"POSITION",0,DXGI_FORMAT_R32G32B32_FLOAT, 0 , 0,
        D3D10_INPUT_PER_VERTEX_DATA, 0},
    {"COLOR",0,DXGI_FORMAT_R32G32B32A32_FLOAT, 0 , 12,
        D3D10_INPUT_PER_VERTEX_DATA, 0}
};
Run Code Online (Sandbox Code Playgroud)

我在DirectX 10中注意到它更具描述性.除此之外,还有一些重大变化,HLSL语法是否相同?

c c++ directx

6
推荐指数
2
解决办法
3362
查看次数

我能得到一个例子吗?

$starcraft = array(  
    "drone" => array(   "cost" => "6_0-", 
                        "gas" => "192",
                        "minerals" => "33",
                        "attack" => "123",

                    )
    "zealot" => array(  "cost" => "5_0-", 
                        "gas" => "112",
                        "minerals" => "21",
                        "attack" => "321",
                    )               
)
Run Code Online (Sandbox Code Playgroud)

我正在玩oop,我想使用类在这个数组中显示信息,但我不知道如何构造类来显示它.

这是我到目前为止所做的,我不知道从哪里开始.我应该使用二传手和吸气剂吗?

class gamesInfo($game) {
    $unitname;
    $cost;
    $gas;
    $minerals;
    $attack;
}
Run Code Online (Sandbox Code Playgroud)

php oop

-3
推荐指数
1
解决办法
103
查看次数

IPC速度和比较

我正在尝试实现一个涉及不同模块的IPC的实时应用程序.这些模块正在进行一些数据密集型处理.我在原型中使用消息队列作为IPC的主干(Activemq),这很容易(考虑到我是一个完全的IPC新手),但它非常慢.

这是我的情况:

  • 我已经隔离了IPC部分,以便将来可以改变其他方式.
  • 我有3周的时间来实现另一个更快的版本.;-(
  • IPC应该很快,但也比较容易上手

我一直在研究不同的IPC方法:套接字,管道,共享内存.但是,我没有IPC的经验,我绝对没有办法在3周内让这个演示失败......哪种IPC是安全的开始?

谢谢.百合

sockets ipc real-time pipe shared-memory

9
推荐指数
2
解决办法
9833
查看次数

使用PHP的一行关联数组的总和?

是否有一个PHP函数返回一个关联数组的行的总和?

如果不是,我应该只使用一个计数器和一个foreach循环?

欣赏它!

php arrays associative-array sum function

7
推荐指数
3
解决办法
1万
查看次数

从Python的sqlite3获取字段值列表,而不是表示行的元组

令人讨厌的是Python的sqlite3模块总是返回一个元组列表!当我查询单个列时,我宁愿得到一个简单的列表.

例如,当我执行

SELECT somecol FROM sometable
Run Code Online (Sandbox Code Playgroud)

并打电话

cursor.fetchall()
Run Code Online (Sandbox Code Playgroud)

它返回

[(u'one',), (u'two',), (u'three',)]
Run Code Online (Sandbox Code Playgroud)

但我宁愿得到

[u'one', u'two', u'three']
Run Code Online (Sandbox Code Playgroud)

有没有办法做到这一点?

python sqlite

40
推荐指数
4
解决办法
4万
查看次数

战争迷雾的效果

我正在尝试将战争雾应用于屏幕上当前对玩家不可见的区域.我通过将游戏内容渲染RenderTarget到另一个中并将战争迷雾渲染到另一个中来实现这一点,然后我将它们与效果文件合并,该效果文件从游戏中获取颜色RenderTarget并从战争雾渲染目标中获取alpha.FOW RenderTarget在FOW出现时为黑色,而在FOW出现时则为白色.

这确实有效,但它将战争的雾(未显示的位置)变成白色而不是黑色的预期颜色.

在应用效果之前,我将设备的后备缓冲区清除为白色.当我试图将它清除为黑色时,根本没有出现战争迷雾,我认为这是alpha混合黑色的产物.但它适用于所有其他颜色 - 为结果屏幕提供该颜色的色调.

如何在仍能够在两个渲染目标之间进行Alpha混合的同时实现黑雾?

应用FOW的渲染代码:

private RenderTarget2D mainTarget;
private RenderTarget2D lightTarget;

   private void CombineRenderTargetsAndDraw()
    {
        batch.GraphicsDevice.SetRenderTarget(null);
        batch.GraphicsDevice.Clear(Color.White);

        fogOfWar.Parameters["LightsTexture"].SetValue(lightTarget);

        batch.Begin(SpriteSortMode.Immediate, BlendState.AlphaBlend);
        fogOfWar.CurrentTechnique.Passes[0].Apply();
        batch.Draw(
            mainTarget,
            new Rectangle(0, 0, batch.GraphicsDevice.PresentationParameters.BackBufferWidth, batch.GraphicsDevice.PresentationParameters.BackBufferHeight),
            Color.White
        );

        batch.End();
    }
Run Code Online (Sandbox Code Playgroud)

我用来应用FOW的效果文件:

texture LightsTexture;

sampler  ColorSampler  : register(s0);

sampler LightsSampler = sampler_state{
    Texture = <LightsTexture>;
};

struct VertexShaderOutput
{
    float4 Position : POSITION0;
    float2 TexCoord : TEXCOORD0;
};

float4 PixelShaderFunction(VertexShaderOutput input) : COLOR0
{
    float2 tex = input.TexCoord;

    float4 color = …
Run Code Online (Sandbox Code Playgroud)

.net c# xna effects

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

如何防止Debug.Assert(...)显示模式对话框

我有几个使用的库Debug.Assert(...).我认为这Debug.Assert(...)很好,我仍然希望它们执行,但我不希望它们阻止我的应用程序的执行.理想情况下,我只希望他们在某处登录.

鉴于我无法更改库的代码(我仍然希望在调试中编译并运行断言),如何阻止Debug.Assert(...)显示模式对话框?

另外,我想确保主程序在Assert发生时继续(与忽略按钮相同的行为).

谢谢!

.net c# assert c#-4.0

29
推荐指数
3
解决办法
9132
查看次数

从Ruby中包含的文件中访问变量

如何访问包含文件中定义的变量?

# inc.rb
foo = "bar";


# main.rb
require 'inc.rb'
puts foo

# NameError: undefined local variable or method `foo' for main:Object
Run Code Online (Sandbox Code Playgroud)

ruby include

8
推荐指数
2
解决办法
5507
查看次数

Mac与Windows浏览器字体高度渲染问题

我正在使用自定义字体和@ font-face标签.在Windows中,无论是Firefox,Chrome还是IE,一切看起来都很棒.

在Mac上,这是一个不同的故事.出于某种原因,Mac字体渲染器认为字体比它短很多.

例如,请考虑此测试代码(此处为实例):

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />        
        <title>Webble</title>
        <style type="text/css">
        @font-face
        {
            font-family: "Bubbleboy 2";
            src: url("bubbleboy-2.ttf") format('truetype');         
        }

        body
        {
            font-family: "Bubbleboy 2";
            font-size: 30px;
        }

        div
        {
            background-color: maroon;
            color: yellow;
            height: 100px;
            line-height: 100px;
        }
        </style>
    </head>
    <body>
        <div>The quick brown fox jumped over the lazy dog.</div>
    </body>
</html>
Run Code Online (Sandbox Code Playgroud)

在Windows Firefox和Mac Firefox上打开它.用鼠标选择它.

在Windows上,您会注意到它完全选择了字体.

在Mac上,它只选择大约一半的字体.如果您查看它所选择的内容,您将看到该部分已居中,而不是字体的完整高度.

反正有没有解决这个相当大的差异?

browser windows macos font-face

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

如何定义实现servlet接口的clojure类型?

我正在尝试使用deftype(来自流行的clojure 1.2分支)来创建一个实现java Servlet接口的java类.我希望下面的代码能够编译(即使它不是很有用).

(ns foo [:import [javax.servlet Servlet ServletRequest ServletResponse]])

(deftype servlet [] 
   javax.servlet.Servlet 
   (service [this 
         #^javax.servlet.ServletRequest request
         #^javax.servlet.ServletResponse response]
   nil))
Run Code Online (Sandbox Code Playgroud)

但它没有编译.编译器生成消息:

Mismatched return type: service, expected: void, had: java.lang.Object
  [Thrown class java.lang.IllegalArgumentException]
Run Code Online (Sandbox Code Playgroud)

这对我来说没有意义,因为我回来了.因此,方法的返回类型无效的事实应该不是问题.例如,对于java.util.Set接口:

(deftype bar [#^Number n] java.util.Set (clear [this] nil))
Run Code Online (Sandbox Code Playgroud)

编译没有问题.

那么我对Servlet接口做错了什么?

要明确:我知道典型的情况是将一个servlet抽象类子类化,而不是直接实现这个接口,但是仍然可以这样做.

堆栈跟踪:

(deftype servlet ...的堆栈跟踪是:

Mismatched return type: service, expected: void, had: java.lang.Object
  [Thrown class java.lang.IllegalArgumentException]

Restarts:
 0: [ABORT] Return to SLIME's top level.

Backtrace:
  0: clojure.lang.Compiler$NewInstanceMethod.parse(Compiler.java:6461)
  1: clojure.lang.Compiler$NewInstanceExpr.build(Compiler.java:6119)
  2: clojure.lang.Compiler$NewInstanceExpr$DeftypeParser.parse(Compiler.java:6003)
  3: clojure.lang.Compiler.analyzeSeq(Compiler.java:5289)
  4: clojure.lang.Compiler.analyze(Compiler.java:5110)
  5: …
Run Code Online (Sandbox Code Playgroud)

servlets clojure java-interop deftype

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