 |
|
 |
Hi All,
The task which is given to me is that i have to show a cylinder in 3D.Then when i click on any part of the cylinder and drag the mouse i should be able to deform the cylinder and when i leave the mouse the object should be in the last deformed state.I am planning to use directx for this.
Any inputs from you will be very helpful for me.
Thanking you in Advance,
Regards, Ashwath.
|
| Sign In·View Thread·PermaLink | |
|
|
|
 |
|
 |
Ok, so I have been trawling the web to try and find an answer to this, but to no avail.
Basically, I have a DirectShow filter (well 2) which will allow me to configure a Hauppage WinTV USB adapter (though I doubt the specific filter is 100% relevant to answer the question) to use PAL (I) and to set the source as Composite In. So far, I have found ways to display a filter's property page, and to change the settings of a DMO filter, but not enumerate and change the properties of a non DMO source filter.
The reason for needing to do this is that both filter options seem to reset with Windows, meaning that our source becomes NTSC and Tuner In, rather than Pal-I and Composite In. The filters are classed as a Video Capture Source (WinTV HVR-900H Capture) and a WDM Streaming Crossbar Device (WinTV HVR-900H Crossbar), but the ability to change any property of any filter sans a GUI will be a step in the right direction
I am using a .Net wrapper to play with the filter graph through c#, but have limited knowledge of COM interop (thus the wrapper). Any answers in C++ are fine and dandy also, then I'll worry about how to convert them to C#, just in need of an example really.
What's the easiest method to go about this?
|
| Sign In·View Thread·PermaLink | 1.00/5 (1 vote) |
|
|
|
 |
|
|
 |
|
 |
Sorry, I thought as it was, in fact, relevant to the places I put it, that was acceptable. Was more through my frustration of trawling the web to no avail. Suprised no one else has asked this question before?
|
| Sign In·View Thread·PermaLink | |
|
|
|
 |
|
 |
RobstaHendricks wrote: I thought as it was, in fact, relevant to the places I put it, that was acceptable.
No, it just means people get somewhat annoyed at reading the same question multiple times. Check this[^] out for the gudelines on how to use the forums correctly.
|
| Sign In·View Thread·PermaLink | |
|
|
|
 |
|
 |
Yep, read that and it said only not to put a link to your post in an inappropriate forum:
"9.Please do not post links to your question in one forum from another, unrelated forum (such as the lounge)."
I understand what you are saying though, but didn't know which of the forums to post in. I'll take note for next time.
Any how, did you know which filter graph builder I should use to import the settings from the GRF file? I expect I'll figure which method to use from there.
|
| Sign In·View Thread·PermaLink | |
|
|
|
 |
|
 |
Sorry, I don't know the answer to your query, just hope someone else with the relevant knowledge sees the post.
|
| Sign In·View Thread·PermaLink | |
|
|
|
 |
|
 |
Hello,
I am using color picking method to select a primitive in my application.. At present it is picking only single object.. I just wanted to clarify few doubts..
It is working fine when i click on a single object.. I mean if there are two objects lying on the same pixel.. And if i click that pixel, then i get only one object.. How can i get both the objects, using this method..?? Is it possible..??
Thanks in advance
|
| Sign In·View Thread·PermaLink | |
|
|
|
 |
|
 |
Hello..
I have recently shifted from Display lists to VBOs... It's a very nice thing in OpenGL i found to render huge amount of data smoothly..
Let me explain you the scenario.. I have maintained a list of triangle objects as
std::map<unsigned int, EObjects*> MeshElements
Thus, MeshElements contains all the triangles generated by the mesh generator. Now in order to display, i call a routine first as shown below:
mVertexCount = MeshElements.size();
mVertices = new GLfloat[mVertexCount * 6]; mIndices = new GLuint[mVertexCount * 3];
int v_ind = 0, i_ind = 0;
for( std::map<unsigned int, EObjects*>::iterator it = MeshElements.begin(); it != MeshElements.end(); it++ ) { EObjects *ob = (*it).second; mVertices[v_ind] = ob->GetNodeOne().GetX(); v_ind++; mVertices[v_ind] = ob->GetNodeOne().GetY(); v_ind++; mIndices[i_ind] = ob->GetNodeOneIndex(); i_ind++; mVertices[v_ind] = ob->GetNodeTwo().GetX(); v_ind++; mVertices[v_ind] = ob->GetNodeTwo().GetY(); v_ind++; mIndices[i_ind] = ob->GetNodeTwoIndex(); i_ind++; mVertices[v_ind] = ob->GetNodeThree().GetX(); v_ind++; mVertices[v_ind] = ob->GetNodeThree().GetY(); v_ind++; mIndices[i_ind] = ob->GetNodeThreeIndex(); i_ind++; }
glGenGuffersARB(BufferSize, BufferName);
where BufferSize and BufferName are declared globally as follows:
enum{ INDEX_OBJECT = 0, POSITION_OBJECT = 1 };
static const int BufferSize = 2; static GLuint BufferName[BufferSize];
Below is my rendering code:
glBindBufferARB( GL_ARRAY_BUFFER_ARB, BufferName[POSITION_OBJECT]); glBufferDataARB( GL_ARRAY_BUFFER_ARB, mVertexCount * 6 * sizeof(float), mVertices, GL_STREAM_DRAW_ARB ); glVertexPointer(2, GL_FLOAT, 0, 0);
glBindBufferARB( GL_ELEMENT_ARRAY_BUFFER_ARB, BufferName[INDEX_OBJECT] ); glBufferDataARB( GL_ELEMENT_ARRAY_BUFFER_ARB, mVertexCount * 3 * sizeof(GLuint), mIndices, GL_STREAM_DRAW_ARB );
glEnableClientState(GL_VERTEX_ARRAY); glEnableClientState(GL_INDEX_ARRAY);
glDrawElements( GL_TRIANGLES, mVertexCount*3, GL_UNSIGNED_INT, NULL );
glDisableClientState(GL_INDEX_ARRAY); glDisableClientState(GL_VERTEX_ARRAY);
This code is working fine.. But, only the outer part of the mesh is displayed.. the Inner part is not displayed.. I mean to say, if the mesh is of shape "D", it should have filled all the triangles in "D".. Instead of doing so, it is rather, drawing triangles only along the border of the shape "D" Inner part, triangles are not drawn..
Before using glDrawElements(), i was using glDrawArrays().. It also produced the same output.. So I used, GL_POINTS with glDrawArrays(), just to check if it is reading all the points.. In response to this test, it rendered all the points.. But when i said, GL_TRIANGLES, it is not rendering the inner part..
On the other hand, GL_POINTS with glDrawElements() is also rendering only at the boundaries.. Not inner part like glDrawArrays()..
Is something wrong with my code above..?? Please someone guide me properly..
Thanks in advance..
|
| Sign In·View Thread·PermaLink | |
|
|
|
 |
|
 |
At a guess, I'd say it sounds as if you have issues with vertex winding direction and normal vector polarity. If you haven't already, try enabling double-sided rendering and lighting of the triangles and see if they show up. I suspect that the invisible triangles aren't being rendered because you're looking at their backsides, as defined by the normal and the order in which the vertices are fed to the GL engine.
Just a guess.
|
| Sign In·View Thread·PermaLink | |
|
|
|
 |
|
 |
i want to draw 2D graphic using OpenGL in smartphone or PDA with windows mobile system. but where can i download the opengl libs suport the embed system application?
thanks.
|
| Sign In·View Thread·PermaLink | |
|
|
|
 |
|
|
 |
|
|
 |
|
 |
Hi there,
I was messing around with DirectDraw and UpdateOverlay. Unfortunately, there is no transparency support after all. Color keying can only hide certain pixels from a Bitmap, but not parts of the overlay itself.
Is there any other way to draw a hardware overlay with transparency? DirectDraw is pretty old..
Thanks for the upcoming advises.
|
| Sign In·View Thread·PermaLink | |
|
|
|
 |
|
 |
Hi everybody,
I'm here in the graphics corner coz it's much more of a general graphics question which starts like "Is it possible...?" or "Does the approach make sense"?
We're restoring an ancient movie, which has severe damage on the blue layer over a huge number of frames. One of the ideas for restoration is to safe a non-damaged frame/image from every scene as reference, erase the blue layer from all the frames and compute it newly for the damaged frames, based on the reference image from the same scene. Seems to make sense, but how to implement such a task in a VB program?
How would I extract the blue histogram from the reference image and implant it into the other frames in VB? Any advice and/or better idea is very welcome!
Thank you in advance Michael
|
| Sign In·View Thread·PermaLink | |
|
|
|
 |
|
 |
Michael Schäuble wrote: Seems to make sense, but how to implement such a task in a VB program?
it's hard to answer that without knowing how you are storing your image data. the format you use to hold the image data will determine what you have to do to get at the blue channel.
|
| Sign In·View Thread·PermaLink | 1.00/5 (1 vote) |
|
|
|
 |
|
 |
Hi Chris, thanks for your time.
The files are in 10-bit DPX format (linear RGB), which is basically an uncompressed bitmap format and unsupported from GDI+. By now I read it into a RGB Array and throw 2 bits in order to have it displayed, so I have a System.Drawing.Image object I can access and e.g. put it into a picture box. Is that the additional information you needed or did I misunderstand you?
|
| Sign In·View Thread·PermaLink | |
|
|
|
 |
|
 |
if you have the RGB array, you should be able to simply copy the B data out of it, right?
maybe i'm misunderstanding now..
|
| Sign In·View Thread·PermaLink | |
|
|
|
 |
|
 |
Maybe I didn't make it clear enough... I don't want to extract the blue channel. What I want is to
1. detect some kind of 'blue level' in a reference picture (only one, non-damaged frame) 2. transfer it to a complete series of other frames/images (the whole scene), from which the (damaged) blue channel had been erased before.
Like when you re-adjust the color levels in a histogram in order to get natural colors - but automatically, using a reference instead of user interaction. Is that clearer?
|
| Sign In·View Thread·PermaLink | 5.00/5 (1 vote) |
|
|
|
 |
|
 |
Even if you have the blue data from an undamaged frame, how are you going to decide which pixels in the damaged frames to apply it to? The pixels will move around as the scene progresses. (I'm assuming the blue data in the damaged frames is total garbage) If you could partition each frame into regions and match the regions between frames, you might apply the blue by region and maybe adjust it based on correlation with the red and green channels with some hand adjustment if needed and that "if" is more like "probably".
Have you researched how they apply the colors to old black and white movies? I know in the early days they did that by identifying regions and hand selecting colors which were then automatically propagated forward with hand touchups. Hopefully, that has progressed since the last time I read anything about it.
You measure democracy by the freedom it gives its dissidents, not the freedom it gives its assimilated conformists.
|
| Sign In·View Thread·PermaLink | |
|
|
|
 |
|
 |
what if you simply copy the blue channel from an undamaged frame to the next N frames? it won't match perfectly, but it might be better than nothing.
otherwise, yes, you could generate a histogram from the blue channel of an undamaged frame, then try to force the blue channel in subsequent frames into a similar distribution (find black % and white % from the good frame and then stretch the bad frames to match those %s). that would be pretty simple.
|
| Sign In·View Thread·PermaLink | |
|
|
|
 |
|
 |
Chris,
this sounds exactly what I imagined ...! And 'that would be pretty simple' sounds extremely teasing .
The blue channel isn't completely damaged, it's more or less stained in the blue resulting from fungus that affected irregular regions on the upper/outside layer of some frames. Playing the movie, it looks a bit like ghosts swirling around.
Since there seems to be a way on the basic ideas path, I'll try to find some code samples when I have some extra time again. Or do you even have a link or snippet available that leads in the right direction?
Thanks for now, and have a nice day Mick
|
| Sign In·View Thread·PermaLink | |
|
|
|
 |
|
|
 |
|
 |
Hi,
I am displaying 3D models using opengl and VC++. I have implemented code to rotate, move, zoom the model by moving camera (using gluLookAt() ) Now I want to add one cross hair cursor in front of camera view port(at center of screen), but when I tried to rotate or zoom the model the cursor also rotates or zoom along with model. How I can make cursor lie at same position while rotating model.
Please help me 
|
| Sign In·View Thread·PermaLink | 4.20/5 (2 votes) |
|
|
|
 |
|
 |
After you are done rendering the rest of the scene, reset your view matrix and projection matrix to width and height of your screen and with and ortho projection. Then Draw your cross hair in the center. It does not have to exist in world space. Basically, it is a HUB display on the near plan of your view.
ARon
|
| Sign In·View Thread·PermaLink | |
|
|
|
 |