Followers 0

# DX11 DX11 - Dominant Textures

## 8 posts in this topic

Hi guys!

I'm having a small problem here, that I would like to get fixed, as I'm on a kind of a bug fixing period.

Screenshot.

If you look closely you can see some icons, I call them the debug helpers. To blend them into the scene (They have a separate pass), I simply add the color in the post processing shader, but, then it doesn't come as I hoped, as the colors blend together, kinda obvious  .

So. Now I ask you, how can this be made, without the blending of colors, so if a sprite (it's sprites) is blackish, it becomes black!

What I could do is to, after all the draw calls, draw these special helpers with depth testing disabled.

But are there other ways?

Thanks, as usual!

-MIGI0027

1

##### Share on other sites
This looks like additive blending and it sounds like you want alpha blending (copied from a SDK sample)

D3D11_BLEND_DESC dsc =
{
false,//BOOL AlphaToCoverageEnable;
false,//BOOL IndependentBlendEnable;
{
true, //BOOL BlendEnable;
D3D11_BLEND_SRC_ALPHA, //D3D11_BLEND SrcBlend;
D3D11_BLEND_INV_SRC_ALPHA ,    //D3D11_BLEND DestBlend;
D3D11_BLEND_ZERO ,    //D3D11_BLEND SrcBlendAlpha;
D3D11_BLEND_ZERO ,    //D3D11_BLEND DestBlendAlpha;
}
};

Your sprite textures need a proper alpha channel for this. Also: Google for the difference between premultiplied and non-premultiplied alpha blending (the above code is the latter).
1

##### Share on other sites

Thanks for the support unbird, appreciate it.

0

##### Share on other sites

Its all about the moves and the complexity of them

I hate to see that people continue the model of click this text and then this text and then this text to do something

Its slow in the sense of making an action and in learning how to use the program

If the computer was my body, I will have to make some silly 100 different clicks in different places to make my body take an object from the floor

so when you develop a program think more about how is that input made, and make it cooler, we must change that silly model of clicking this text then this text and then this other text.......

0

##### Share on other sites

Then what do you suggest I do, to my terrible modal?

0

##### Share on other sites

I prefer now that you know that, develop it alone and then we will see what new things you can create

Every program should have too a kind of visual start that makes us do all the things that can be done with the program

In the proces makes us learn all those cool moves and conbinations to get the program do something

that should not be teached by other person, or a book

Edited by lomateron
0

##### Share on other sites
Off topic I was going to say the opposite.  Nice UI you've got there! What are you using? Qt? WPF?
As for the text thing, I recommend reading Apple's HID guidelines
0

##### Share on other sites

Thanks! Qt by the way.

0

##### Share on other sites

Thanks for the support unbird, appreciate it.

You're welcome.

And yeah, I expect an intuitive and convenient interface for something as complex as a game/3D editor to be quite hard to do. It's a nice start you got there, so congrats.

0

## Create an account

Register a new account

Followers 0

• ### Similar Content

• By thmfrnk
Hello,
I am working on a Deferred Shading Engine, which actually uses MSAA for Antialising. Apart from the big G-Buffer ressources its working fine. But the intention of my engine is not only realtime-rendering as also render Screenshots as well as Videos. In that case I've enough time to do everything to get the best results. While using 8x MSAA, some scenes might still flicker.. especially on vegetations. Unfortunately 8x seems to be the maximum on DX11 Hardware, so there is no way to get better results, even if don't prefer realtime.
So finally I am looking for a solution, which might offer an unlimited Sample count. The first thing I thought about was to find a way to manually manipulate MSAA Sample locations, in order to be able to render multiple frames with different patterns and combining them. I found out that NVIDIA did something equal with TXAA. However, I only found a solution to use NVAPI, in order to change sample locations. https://mynameismjp.wordpress.com/2015/09/13/programmable-sample-points/
While I am working on .NET and SlimDX I've no idea how hard it would to implement the NVIDIA API and if its possible to use it together with SlimDX. And this approach would be also limited to NV.
Does anyone have an idea or maybe a better approach I could use?
Thanks, Thomas

• For vector operations which mathematically result in a single scalar f (such as XMVector3Length or XMPlaneDotCoord), which of the following extractions from an XMVECTOR is preferred:
1. The very explicit store operation
const XMVECTOR v = ...; float f; XMStoreFloat(&f, v); 2. A shorter but less explicit version (note that const can now be used explicitly)
const XMVECTOR v = ...; const float f = XMVectorGetX(v);

• Hi guys,
this is a exam question regarding alpha blending, however there is no official solution, so i am wondering  whether my solution is right or not... thanks in advance...

my idea:
BS1:
since BS1 with BlendEnable set as false, just write value into back buffer.
-A : (0.4, 0.4, 0.0, 0.5)
-B : (0.2, 0.4, 0.8, 0.5)

BS2:

backbuffer.RGB: = (0.4, 0.0, 0.0) * 1 + (0.0, 0.0, 0.0) * (1-0.5)      = ( 0.4, 0.0, 0.0)
backbuffer.Alpha = 1*1 + 0*0   =1

A.RGB = (0.4, 0.4, 0.0)* 0.5 + (0.4, 0.0, 0.0)* ( 1-0.5)   = (0.4,0.2,0.0)
A.Alpha=0.5*1+1*(1-0.5) = 1

B.RGB = (0.2, 0.4, 0.8) * 0.5 + (0.4, 0.2, 0.0) * (1-0.5)  = (0.3, 0.3, 0.4)
B.Alpha = 0.5 * 1 + 1*(1-0.5)  = 1

==========================
BS3:

backbuffer.RGB = (0.4, 0.0, 0.0) + (0.0, 0.0, 0.0)  = (0.4, 0.0, 0.0)
backbuffer.Alpha = 0

A.RGB = (0.4, 0.4, 0.0) + (0.4, 0.0, 0.0) = (0.8, 0.4, 0.0)
A.Alpha = 0

B.RGB = (0.2, 0.4, 0.8) + (0.8, 0.4, 0.0) = (1.0, 0.8, 0.8)
B.Alpha = 0

• Hi Guys,
I am revisiting an old DX11 framework I was creating a while back and am scratching my head with a small issue.
I am trying to set the pixel shader resources and am getting the following error on every loop.
As you can see in the below code, I am clearing out the shader resources as per the documentation. (Even going overboard and doing it both sides of the main PSSet call). But I just can't get rid of the error. Which results in the render target not being drawn.
ID3D11ShaderResourceView* srv = { 0 }; d3dContext->PSSetShaderResources(0, 1, &srv); for (std::vector<RenderTarget>::iterator it = rtVector.begin(); it != rtVector.end(); ++it) { if (it->szName == name) { //std::cout << it->srv <<"\r\n"; d3dContext->PSSetShaderResources(0, 1, &it->srv); break; } } d3dContext->PSSetShaderResources(0, 1, &srv);
I am storing the RT's in a vector and setting them by name. I have tested the it->srv and am retrieving a valid pointer.
At this stage I am out of ideas.
Any help would be greatly appreciated

• hi, guys, how to understand the math used in CDXUTDirectionWidget ::UpdateLightDir
the  following code snippet is taken from MS DXTU source code

D3DXMATRIX mInvView;
D3DXMatrixInverse( &mInvView, NULL, &m_mView );
mInvView._41 = mInvView._42 = mInvView._43 = 0;
D3DXMATRIX mLastRotInv;
D3DXMatrixInverse( &mLastRotInv, NULL, &m_mRotSnapshot );
D3DXMATRIX mRot = *m_ArcBall.GetRotationMatrix();
m_mRotSnapshot = mRot;
// Accumulate the delta of the arcball's rotation in view space.
// Note that per-frame delta rotations could be problematic over long periods of time.
m_mRot *= m_mView * mLastRotInv * mRot * mInvView;
// Since we're accumulating delta rotations, we need to orthonormalize
// the matrix to prevent eventual matrix skew
D3DXVECTOR3* pXBasis = ( D3DXVECTOR3* )&m_mRot._11;
D3DXVECTOR3* pYBasis = ( D3DXVECTOR3* )&m_mRot._21;
D3DXVECTOR3* pZBasis = ( D3DXVECTOR3* )&m_mRot._31;
D3DXVec3Normalize( pXBasis, pXBasis );
D3DXVec3Cross( pYBasis, pZBasis, pXBasis );
D3DXVec3Normalize( pYBasis, pYBasis );
D3DXVec3Cross( pZBasis, pXBasis, pYBasis );

https://github.com/Microsoft/DXUT/blob/master/Optional/DXUTcamera.cpp

• 19
• 14
• 23
• 11
• 28