Jump to content

  • Log In with Google      Sign In   
  • Create Account


BinaryDeadBeef

Member Since 01 Dec 2011
Offline Last Active May 05 2013 09:14 AM
-----

Topics I've Started

glm::unProject alignment error

29 March 2013 - 02:59 PM

I am trying to create a dynamic UI that operates in my scene graph. It is comprised of planes in 2D space, that I wish to be able to interact with and move about.

 

To test this I have been trying to get the location of a 2D plane in 3D space, facing the camera -5.0f units away to align with the positon of the mouse ( from this I can then click and drag UI elements, interact with elements etc.), however, I am unable to align the place correctly, as it overshoots the current location of the mouse pointer.

 

I have googled extensively and experimented, but to no avail.

 

Here is my mouse unproject code: 

 

void mouse::unProjectMouse(float width, float height, camera* viewportCamera)
{
	if(NULL == viewportCamera)
	{
		std::cout<<CNTRLCALL<<"camera failed! failed to un-project mouse";
	} else {

		GLfloat pixelDepth;
		glReadPixels((GLint)mouseX, (GLint)mouseY, 1, 1, GL_DEPTH_COMPONENT, GL_FLOAT, &pixelDepth);

		glm::vec4 viewport = glm::vec4(0.0f, 0.0f, width, height);
		glm::mat4 tmpView = viewportCamera->updateView();
		glm::mat4 tmpProj = viewportCamera->updateProjection();
		glm::vec3 screenPos = glm::vec3(mouseX, height-mouseY, pixelDepth);
	
	
		glm::vec3 worldPos = glm::unProject(screenPos, tmpView, tmpProj, viewport);

		//worldPos = worldPos / (worldPos.z * -1.0f);

		mouseWorldX = worldPos.x;
		mouseWorldY = worldPos.y;
		mouseWorldZ = worldPos.z;
	}
	
}

 

and the code from the camera for the View and Projection:

glm::mat4 camera::updateProjection(){return glm::perspective(m_fieldOfView, m_aspectRatio, m_nearPlane, m_farPlane);}
glm::mat4 camera::updateView(){return camOrientation() * glm::translate(glm::mat4(), -m_cameraPosition);}

 

 

Many thanks


hwnd issues relating to DirectX10 project framework

01 December 2011 - 09:16 AM

I have just written my application frame work again, I am however, currently experiences error relating to hwnd. I've been debugging my program for a couple of hours now, seems like I am out of options, I would appreciate it someone more experienced than I could look over the code and throw me some indications as to were my problems have arisen from.

tl;dr hwnd problem, need help



The problem currently 'seems' related to:

swapChainDesc.OutputWindow = *hWnd;

I am left with an access read violation error


My code is organised such that:

dxGeometry->dxD3D.h->dxSystem->winMain


Screenshot of output:
Posted Image


dxGeometry.h
http://pastebin.com/DaifJK15

dxD3D.h
http://pastebin.com/d0RMmNvK

dxSystem.h
http://pastebin.com/a28BV8AX

winMain.cpp
http://pastebin.com/3c9sGcv5

A direct download of the application:
http://hotfile.com/dl/136477984/3be


Many thanks guys.

PARTNERS