Nevermind, I'm good.
Turns out that refreshing the matrices every draw doesn't quite work appropriately.
- Viewing Profile: Posts: blacken
Awesome job so far everyone! Please give us your feedback on how our article efforts are going. We still need more finished articles for our May contest theme: Remake the Classics
Community Stats
- Group Members
- Active Posts 11
- Profile Views 570
- Member Title Member
- Age Age Unknown
- Birthday Birthday Unknown
-
Gender
Not Telling
126
Neutral
User Tools
Contacts
blacken hasn't added any contacts yet.
Latest Visitors
Posts I've Made
In Topic: Form Flashing when Painting
17 December 2012 - 01:02 AM
In Topic: Form Flashing when Painting
16 December 2012 - 12:30 AM
Anyone out there help me out?
I believe that it has something to do with the speed at which the device clears the screen before painting the new one. If i put a breakpoint on the this.invalidate line and then hold f5 to just continue the program it works perfectly.
Looking at msdn and a few other things, the invalidate method has to wait for the messages or something to stop or you should make the messages or something stop, i personally have no idea, so i am hoping someone can help me. Once it get this problem solved i should be good.
Cheers guys
I believe that it has something to do with the speed at which the device clears the screen before painting the new one. If i put a breakpoint on the this.invalidate line and then hold f5 to just continue the program it works perfectly.
Looking at msdn and a few other things, the invalidate method has to wait for the messages or something to stop or you should make the messages or something stop, i personally have no idea, so i am hoping someone can help me. Once it get this problem solved i should be good.
Cheers guys
In Topic: Can't draw a simple cube
11 December 2012 - 12:28 AM
Hossainiir,
not sure what you mean by PIX? could you elaborate?
thanks adt7, but not sure what i should be doing for drawing.
i uncommented the drawprimitives section and it still just shows a blank screen.
Is there something i am missing?
not sure what you mean by PIX? could you elaborate?
thanks adt7, but not sure what i should be doing for drawing.
i uncommented the drawprimitives section and it still just shows a blank screen.
Is there something i am missing?
In Topic: SlimDX Mesh.ComputeNormals Error
06 December 2012 - 01:00 AM
Thank you very much for your help unbird. It no longer throws this error.
However, the next question i have is why doesn't it show the cube?
Any help you could provide would be much appreciated.
However, the next question i have is why doesn't it show the cube?
Any help you could provide would be much appreciated.
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using SlimDX;
using SlimDX.Direct3D9;
using SlimDX.Windows;
namespace WindowsFormsApplication1
{
public partial class Form1 : Form
{
Mesh meshTerrain;
Device device;
Direct3D direct3d = new Direct3D();
CustomVertex test = null;
Vertex[] vertices;
short[] indices;
int WIDTH, HEIGHT, angle;
public Form1()
{
InitializeComponent();
this.Text = "Managed DirectX Tutorial 1";
test = new CustomVertex();
InitGraphics();
}
void InitGraphics()
{
angle = 0;
PresentParameters present_params = new PresentParameters();
present_params.Windowed = true;
present_params.SwapEffect = SwapEffect.Discard;
device = new Device(direct3d, 0, DeviceType.Hardware, this.Handle, CreateFlags.SoftwareVertexProcessing, present_params);
vertices = new Vertex[]
{
new Vertex ( new Vector3 ( - 1, - 1, - 1 ) , Color.Red.ToArgb ( ) ) ,
new Vertex ( new Vector3 ( 1, - 1, - 1 ) , Color.LightBlue.ToArgb ( ) ) ,
new Vertex ( new Vector3 ( 1, - 1, 1 ) , Color.LightCyan.ToArgb ( ) ) ,
new Vertex ( new Vector3 ( - 1, - 1, 1 ) , Color.CadetBlue.ToArgb ( ) ) ,
new Vertex ( new Vector3 ( - 1, 1, - 1 ) , Color.Red.ToArgb ( ) ) ,
new Vertex ( new Vector3 ( 1,1, - 1 ) , Color.Orange.ToArgb ( ) ) ,
new Vertex ( new Vector3 ( 1,1,1 ) , Color.Goldenrod.ToArgb ( ) ) ,
new Vertex ( new Vector3 ( - 1, 1,1 ) , Color.Yellow.ToArgb ( ) )
};
indices = new short[]
{
4,1,0,4,5,1,
5,2,1,5,6,2,
6,3,2,6,7,3,
7,0,3,7,4,0,
7,5,4,7,6,5,
2,3,0,2,0,1
};
CreateMesh();
//device = new Device(direct3d, 0, DeviceType.Hardware, this.Handle, CreateFlags.SoftwareVertexProcessing, present_params);
//device = new Device(direct3d, 0, DeviceType.Hardware, this, CreateFlags.SoftwareVertexProcessing, present_params);
}
private void CreateMesh()
{
meshTerrain = new Mesh(device, 12, 8, MeshFlags.Managed, CustomVertex.PositionColored.format);
DataStream stream = meshTerrain.VertexBuffer.Lock(0, 0, LockFlags.None);
stream.WriteRange(vertices);
meshTerrain.VertexBuffer.Unlock();
stream.Close();
stream = meshTerrain.IndexBuffer.Lock(0, 0, LockFlags.None);
stream.WriteRange(indices);
meshTerrain.IndexBuffer.Unlock();
stream.Close();
meshTerrain.GenerateAdjacency(0.5f);
meshTerrain.OptimizeInPlace(MeshOptimizeFlags.VertexCache);
meshTerrain = meshTerrain.Clone(device, MeshFlags.Managed, CustomVertex.PositionNormalColored.format);
meshTerrain.ComputeNormals();
}
protected override void OnPaint(PaintEventArgs e)
{
device.Clear(ClearFlags.Target | ClearFlags.ZBuffer, Color.DarkSlateBlue, 1.0f, 0);
device.BeginScene();
//device.DrawUserPrimitives(PrimitiveType.TriangleList, 1, vertices);
device.VertexFormat = CustomVertex.PositionNormalColored.format;
//device.SetTransform(TransformState.World, Matrix.Translation(-HEIGHT / 2, -WIDTH / 2, 0) * Matrix.RotationZ(angle));
int numSubSets = meshTerrain.GetAttributeTable().Length;
for (int i = 0; i < numSubSets; i++)
{
meshTerrain.DrawSubset(i);
}
device.EndScene();
device.Present();
//CustomVertex.TransformedColored[] vertexes = new CustomVertex.TransformedColored[3];
//vertexes[0].Position = new Vector4(50, 50, 0, 1.0f);
//vertexes[0].Color = System.Drawing.Color.FromArgb(0, 255, 0).ToArgb();
//vertexes[1].Position = new Vector4(250, 50, 0, 1.0f);
//vertexes[1].Color = System.Drawing.Color.FromArgb(0, 0, 255).ToArgb();
//vertexes[2].Position = new Vector4(50, 250, 0, 1.0f);
//vertexes[2].Color = System.Drawing.Color.FromArgb(255, 0, 0).ToArgb();
//device.Clear(ClearFlags.Target, System.Drawing.Color.FromArgb(0, 0, 0).ToArgb(), 1.0f, 0);
//device.BeginScene();
//device.VertexFormat = CustomVertex.TransformedColored.format;
//device.DrawUserPrimitives(PrimitiveType.TriangleList, 1, vertexes);
//device.EndScene();
//device.Present();
}
private void Form1_Load(object sender, EventArgs e)
{
}
//[StructLayout(LayoutKind.Sequential)]
public struct Vertex
{
public Vector3 Position;
public int color;
public Vertex(Vector3 position, int color)
{
this.Position = position;
this.color = color;
}
}
class CustomVertex
{
//[StructLayout(LayoutKind.Sequential)]
public struct TransformedColored
{
public Vector4 Position;
public int Color;
public static readonly VertexFormat format = VertexFormat.Diffuse | VertexFormat.PositionRhw;
}
//[StructLayout(LayoutKind.Sequential)]
public struct PositionColored
{
public Vector3 Position;
public int Color;
public static readonly VertexFormat format = VertexFormat.Diffuse | VertexFormat.Position;
}
//[StructLayout(LayoutKind.Sequential)]
public struct PositionNormalColored
{
public Vector3 Position;
public Vector3 Normal;
public int Color;
public static readonly VertexFormat format = VertexFormat.Diffuse | VertexFormat.Position | VertexFormat.Normal;
}
}
}
}
- Home
- » Viewing Profile: Posts: blacken

Find content