protected override void Awake() { base.Awake(); meshFilter = GetComponent <MeshFilter>(); meshCollider = GetComponent <MeshCollider>(); RibbonMesh = new RibbonMesh(Vector3.one * .3f); }
/// <summary> /// Set the scale of the ribbon cross section. /// </summary> /// <param name="scale"></param> public void SetRibbonScale(Vector3 scale) { List <Vector3> currentCrossSections = this.GetCrossSection(); RibbonMesh = new RibbonMesh(currentCrossSections, scale); Mesh mesh = RibbonMesh.GetMesh(Points, Rotations); UpdateMesh(mesh); }
private void generateRibbon() { List <Vector3> points = new List <Vector3>(); List <Quaternion> rotations = new List <Quaternion>(); foreach (Transform controlPoint in ControlPointParent.transform) { points.Add(controlPoint.position); rotations.Add(controlPoint.rotation); } GetComponent <MeshFilter>().mesh = RibbonMesh.GetRibbonMesh(points, rotations, .4f); }
private void DrawHoldRibbon(RenderContext context, double now, Note startNote, Note endNote) { OnStageStatus s1 = NotesLayerUtils.GetNoteOnStageStatus(startNote, now), s2 = NotesLayerUtils.GetNoteOnStageStatus(endNote, now); if (s1 == s2 && s1 != OnStageStatus.OnStage) { return; } var mesh = new RibbonMesh(context, startNote, endNote, now, ConnectionType.Hold); mesh.Fill(RibbonBrush.Brush); }
void ISerializableComponent.ApplyData(SerializableComponentData data) { if (data is RibbonSketchObjectData ribbonData) { RibbonMesh = new RibbonMesh(ribbonData.CrossSectionVertices, ribbonData.CrossSectionScale); SetControlPointsLocalSpace(ribbonData.ControlPoints, ribbonData.ControlPointOrientations); meshRenderer.sharedMaterial = Defaults.GetMaterialFromDictionary(ribbonData.SketchMaterial); ribbonData.ApplyDataToTransform(this.transform); } else { Debug.LogError("Invalid data for RibbonSketchObject."); } }
public void RibbonMesh_AddControlPoint_Performance([NUnit.Framework.Range(9, 99, 10)] int length) { RibbonMesh ribbonMesh = null; Measure.Method(() => { ribbonMesh.AddPoint(new Vector3(length + 1, 0, 0), Quaternion.identity); }) .SetUp(() => { ribbonMesh = new RibbonMesh(Vector3.one); ribbonMesh.GetMesh(GenerateControlPoints(length), GenerateQuaternions(length)); }) .Run(); }
void initResources() { // ribbon mesh mRibbonMesh = new RibbonMesh(numTrails, numRibbons); // cs - update point mRt_posLife = new RenderTexture[2]; mRt_velScale = new RenderTexture[2]; for (int i = 0; i < 2; i++) { mRt_posLife[i] = initComputeRenderTexture(numTrails, numRibbons); mRt_velScale[i] = initComputeRenderTexture(numTrails, numRibbons); } mRt_rotDir = initComputeRenderTexture(numTrails, numRibbons); // render mRibbonMat = new Material(mRibbonShader); }
internal static void DrawRibbon(this RenderContext context, RibbonMesh mesh, D3DSimpleTextureEffect effect, D3DMaterial material, Matrix viewProjection, ShaderResourceView texture) { // World = I, so use viewProjection as World*viewProjection effect.WorldTransform = Matrix.Identity; effect.WorldTransformInversedTransposed = MathF.InverseTranspose(Matrix.Identity); effect.WorldViewProjectionTransform = viewProjection; effect.Material = material; effect.Texture = texture; var tech = effect.SimpleTextureTechnique; var desc = tech.Description; var deviceContext = context.Direct3DDevice.ImmediateContext; for (var i = 0; i < desc.PassCount; ++i) { tech.GetPassByIndex(i).Apply(deviceContext); mesh.Draw(deviceContext); } }
public void SetCrossSection(List <Vector3> CrossSectionVertices, Vector3 CrossSectionScale) { RibbonMesh = new RibbonMesh(CrossSectionVertices, CrossSectionScale); UpdateMesh(RibbonMesh.GetMesh(Points, Rotations)); }
protected override void Awake() { base.Awake(); RibbonMesh = new RibbonMesh(Vector3.one * .3f); }
internal static void DrawRibbon([NotNull] this GraphicsDevice graphicsDevice, RibbonMesh mesh, [NotNull] RibbonEffect effect, Matrix viewProjection, Material material, [NotNull] Texture2D ribbonTexture) { // World = I, so use viewProjection as World*viewProjection effect.World = Matrix.Identity; effect.WorldInvTranspose = Matrix.Identity; effect.WorldViewProj = viewProjection; effect.MaterialAmbient = material.Ambient; effect.MaterialDiffuse = material.Diffuse; effect.MaterialSpecular = material.Specular; effect.MaterialReflect = material.Reflect; effect.Opacity = 1; effect.TextureTransform = Matrix.Identity; effect.RibbonTexture = ribbonTexture; var pass = effect.CurrentTechnique.Passes[0]; pass.Apply(); graphicsDevice.BlendState = BlendState.AlphaBlend; graphicsDevice.DepthStencilState = DepthStencilState.Default; graphicsDevice.RasterizerState = RasterizerState.CullNone; mesh.Draw(graphicsDevice); }