Ejemplo n.º 1
0
        static void Simple(PrimeContext ctx)
        {
            Vector3[] vertices =
            {
                new Vector3(0.0f),
                new Vector3(1.0f,  0.0f, 0.0f),
                new Vector3(1.0f,  1.0f, 0.0f),
            };
            int[] indices = { 0, 2, 1 };

            var vertexBuffer = ctx.CreateBuffer(RTPBufferType.Host, RtpBufferFormat.VERTEX_FLOAT3, vertices);

            vertexBuffer.SetRange(0, 3);
            var indexBuffer = ctx.CreateBuffer(RTPBufferType.Host, RtpBufferFormat.IndicesInt3, indices);

            indexBuffer.SetRange(0, 1);
            using (var model = new PrimeModel(ctx))
            {
                model.SetTriangles(indexBuffer, vertexBuffer);
                model.Update(0);

                var r = new Ray
                {
                    origin = new Vector3(0.3f, 0.3f, -0.1f), dir = new Vector3(0, 0, 0.99f), tmax = 1e34f
                };

                var rayHit    = new Hit();
                var hitData   = new[] { rayHit };
                var rayBuffer = ctx.CreateBuffer(RTPBufferType.CudaLinear,
                                                 RtpBufferFormat.RTP_BUFFER_FORMAT_RAY_ORIGIN_TMIN_DIRECTION_TMAX, new[] { r });

                var hitBuffer = ctx.CreateBuffer(RTPBufferType.CudaLinear, RtpBufferFormat.RTP_BUFFER_FORMAT_HIT_T_TRIID_U_V, hitData);
                {
                    using (var query = new PrimeQuery(ctx, model, QueryType.AnyHit))
                    {
                        query.SetRays(rayBuffer);
                        query.SetHits(hitBuffer);
                        query.Execute(0);
                        query.Finish();


                        foreach (var hit in hitBuffer.GetData <Hit>())
                        {
                            if (hit.t > 0 && hit.t < 1e34f)
                            {
                                Console.ForegroundColor = ConsoleColor.Green;
                                Console.WriteLine("Hit!");
                            }
                            else
                            {
                                Console.WriteLine("no hit");
                            }
                        }
                    }
                }
            }
        }
Ejemplo n.º 2
0
 public IActionResult GeneratePrime([Bind("InputNumber")] PrimeModel model)
 {
     model.Numbers = FindFactors(model.InputNumber);
     return(View("Index", model));
 }