#quadmesh
Explore tagged Tumblr posts
Text
Procedural Cyclic Slash
Get the code for this shader here -> https://godotshaders.com/shader/procedural-cyclic-slash/
This is a really jank shader, but it looks pretty nice when the values are just right. So that's what this post is for! I'll help you with understanding the uniforms and value setup and leave some general tips so you can experiment easily on your own.
Quick Setup
Here is a quick rundown on how to get something similar to the video above:
Create a MeshInstance3D node and set the mesh to QuadMesh
Apply the shader as a Material Override (GeometryInstance3D -> Geometry)
Set these values:
Animation.Derive_Progress = -1 Animation.Time_Scale = 0.25 Shape.Rotate_All = 285 Shape.Noise = - New NoiseTexture2D - - Width = 512 - - Height = 128 - - Seamless = True - - Noise = - - - New FastNoiseLite - - - - Noise_Type = Cellular - - - - Fractal.Gain = 4 - - - - Cellular.Distance_Function = Manhattan Shape.Width_Gradient_Mask = - New GradientTexture1D - - Gradient = - - - New Gradient - - - - Offsets: 0.2, 0.5, 0.52 - - - - Colors: #FFFFFF, #000000, #FFFFFF Shape.Length_Gradient_Mask = - New GradientTexture1D - - Gradient = - - - New Gradient - - - - Offsets: 0.25, 0.4, 0.6, 0.65, 0.7 - - - - Colors: #FFFFFF, #7F7F7F, #000000, #7F7F7F, #FFFFFF Shape.Highlight = - New GradientTexture1D - - Gradient = - - - New Gradient - - - - Offsets: 0.5, 0.52, 0.54 - - - - Colors: #000000, #FFFFFF, #000000 Coloring.Color_Lookup = - New GradientTexture1D - - Gradient = - - - New Gradient - - - - Offsets: 0.0, 0.1, 0.2 - - - - Colors: #BF40BF, #008080, #ADD8E6
Overview
This shader works by taking a noise texture and wrapping it around the center point of UV1. The curved noise texture is then masked twice to set its width and "length" and an additional texture is applied to add a highlight effect. The shader uses values of gray, a lookup texture, and UV.x to apply colours. Lastly, motion is created by shifting the UV sample of the original noise texture and running the combined grayscale texture through a smooth step function to determine its alpha. This is a text-based shader written in Godot's Shading Language. Sorry, I can't help you implement it in Unity or some other engine or software. --
Animation Uniforms
The Progress uniform sets what point in time the shader is in. This only works when the Derive Progress uniform is set to (0). You can pretty much use the progress uniform to scrub through the shader's animation. If you set the progress value in code or through an animation player, you can control the animation as you like. Derive Progress changes what drives the shader's animation. If set to (-1), TIME will progress the animation. If it animates too quickly, you can use Time Scale to speed it up or slow it down. If set to (1) the particle LIFETIME will progress the animation. This is useful if you plan to set this shader as the material of a particle in a GPUParticles3D or CPUParticles3D. Ease Progress gives you a bit of control over how the shader's animation progresses if you are driving it with TIME or LIFETIME. When set to (0) no easing will occur. (-1) Will ease in exponentially and (1) Will ease out exponentially, but if you have the chops you can tweak this by changing the functions in the shader code. Time Scale alters the speed of the animation when Derive Progress is set to (-1). Anim Rot Amt controls how much the shader rotates as it animates. Set it to (0) if you want the effect to remain in the same place instead of rotating around the center of UV1. This value is put through an easing function, so it doesn't adjust linearly. I personally, wouldn't try setting this to anything other than (0) or (1). --
Shape Uniforms
Zoom controls the size of the effect on the quad. The value is interpreted inversely, so setting a larger value will make it smaller. The effect will repeat if you set this value above (1). Rotate All lets you rotate the effect on the quad. Use degrees. Base Noise generates the main shape for this effect. You can use any type of noise and I encourage you to experiment. Just make sure it's seamless so you don't get any odd artifacts. By setting the noise to be wider than it is tall, you can stretch out the shapes it makes which I think better resembles a slash. Decreasing the dimensions of the noise can lead to bigger streak blobs and softer-looking shapes depending on the noise used. I'd look into this if you want a more stylized/cartoon-looking effect.
Width Gradient Mask masks the Base Noise in a way that controls the width of the final effect. Like Base Noise this will be wrapped around the center point of UV1 so I suggest using a GradientTexture1D. You can do some cool things here if you're willing to experiment (and possibly alter the code) just make sure this is set to a grayscale image. The way I wrote the math dictates that darker colours will be kept and light colours will clip, so use white to control what to cut out and black to control what to keep. A gradient that transitions from white to black back to white is a good place to start.
Length Gradient Mask masks the Base Noise in a way that controls the "length" of the final effect. This also controls how it animates sorta. I can't really explain it, but how this overlays the noise will alter how the smooth step function works... I think. White denotes the edges and Black the center. If you use a gradient here, moving the white values closer to the center can help with shaping. I also suggest using gray so you can better shape the length of the effect.
Highlight is overlayed on the effect. like everything else, it is wrapped around the center point of UV1. A thin white stripe works best. Unlike the other textures this one is played straight, so black won't appear and white will. Moving the white stripe closer to the right edge of the gradient will move the highlight effect to the outside of the slash, left will move it inside. I like to set it so it's a bit closer to the right so it appears on the outer edge. If you don't want a highlight at all leave this uniform empty. --
Coloring Uniforms
Emission Strength controls how much it glows. If it doesn't glow in the editor, add a world environment node and enable glow, you will also need this in your game scenes fyi. Mix Strength controls how much the Color Lookup is applied to the effect. If Color Lookup is applied, decreasing this value will give a darker appearance. At (0), the effect (excluding the highlight) will appear black. You can add extra glow by increasing this above (1).
Color Lookup is used to color the effect. I think I screwed up the math, so just ensure the colors you want the shader to sample from are close to the left side of what you set here. Three colors is pretty nice, I like to put darker colors closer to the left side and lighter ones to the right. --
Final Notes
Sorry for this lengthy post. I've had issues before where a shader I found on GodotShaders was a bit obtuse and I didn't want others to run into that with this one. I've spent quite some time trying to figure this out but I still feel this is a pretty meh effect. I think I need to look into how people animate shaders using a static image and clipping/stepping/smooth stepping it. If you have any good resources for shaders I'd be interested to hear about them. I'd prefer not to get any articles about visual or node-based shaders since I keep fumbling how to convert some nodes into functions or what sorta math is going on, but at this rate, I'll take whatever I can get lol. Hopefully, this shader saves you some time or teaches you something new! If you have any questions (and I can answer them) don't hesitate to ask. However, I'd prefer if you contacted me on Discord. I'm in Godot Café, Godot Engine, and the Godot Effects and Shaders discord servers as (@)Aiwi.
17 notes
·
View notes
Text
Adding text to the quadmeshes was a hell of a lot easier than I was first a-feared of:
Turns out there's an actual Mesh Object ("New TextMesh," specifically) that takes whatever parameters, font, and text you give it and it turns it into 3D objects you can then slap onto whatever you need to.
It's usually gonna be one line of text on the longer trilons (the one showing "an answer here"), with maybe two lines at most on the taller, stouter ones ("a pithy category name").
Now, the question is, can I get the code to do everything I need it to do?
#Benny Scott#Soulbeat#art wip#wip#gamedev#game show#how to produce a game show#pick 3#3d mesh#Godot 4#godot engine
2 notes
·
View notes
Text
Integrating electronics onto physical prototypes
MIT researchers have invented a way to integrate “breadboards” — flat platforms widely used for electronics prototyping — directly onto physical products. The aim is to provide a faster, easier way to test circuit functions and user interactions with products such as smart devices and flexible electronics.
Breadboards are rectangular boards with arrays of pinholes drilled into the surface. Many of the holes have metal connections and contact points between them. Engineers can plug components of electronic systems — from basic circuits to full computer processors — into the pinholes where they want them to connect. Then, they can rapidly test, rearrange, and retest the components as needed.
But breadboards have remained that same shape for decades. For that reason, it’s difficult to test how the electronics will look and feel on, say, wearables and various smart devices. Generally, people will first test circuits on traditional breadboards, then slap them onto a product prototype. If the circuit needs to be modified, it’s back to the breadboard for testing, and so on.
In a paper being presented at CHI (Conference on Human Factors in Computing Systems), the researchers describe “CurveBoards,” 3D-printed objects with the structure and function of a breadboard integrated onto their surfaces. Custom software automatically designs the objects, complete with distributed pinholes that can be filled with conductive silicone to test electronics. The end products are accurate representations of the real thing, but with breadboard surfaces.
CurveBoards “preserve an object’s look and feel,” the researchers write in their paper, while enabling designers to try out component configurations and test interactive scenarios during prototyping iterations. In their work, the researchers printed CurveBoards for smart bracelets and watches, Frisbees, helmets, headphones, a teapot, and a flexible, wearable e-reader.
“On breadboards, you prototype the function of a circuit. But you don’t have context of its form — how the electronics will be used in a real-world prototype environment,” says first author Junyi Zhu, a graduate student in the Computer Science and Artificial Intelligence Laboratory (CSAIL). “Our idea is to fill this gap, and merge form and function testing in very early stage of prototyping an object. … CurveBoards essentially add an additional axis to the existing [three-dimensional] XYZ axes of the object — the ‘function’ axis.”
Joining Zhu on the paper are CSAIL graduate students Lotta-Gili Blumberg, Martin Nisser, and Ethan Levi Carlson; Department of Electrical Engineering and Computer Science (EECS) undergraduate students Jessica Ayeley Quaye and Xin Wen; former EECS undergraduate students Yunyi Zhu and Kevin Shum; and Stefanie Mueller, the X-Window Consortium Career Development Assistant Professor in EECS.
Custom software and hardware
A core component of the CurveBoard is custom design-editing software. Users import a 3D model of an object. Then, they select the command “generate pinholes,” and the software automatically maps all pinholes uniformly across the object. Users then choose automatic or manual layouts for connectivity channels. The automatic option lets users explore a different layout of connections across all pinholes with the click of a button. For manual layouts, interactive tools can be used to select groups of pinholes and indicate the type of connection between them. The final design is exported to a file for 3D printing.
When a 3D object is uploaded, the software essentially forces its shape into a “quadmesh” — where the object is represented as a bunch of small squares, each with individual parameters. In doing so, it creates a fixed spacing between the squares. Pinholes — which are cones, with the wide end on the surface and tapering down — will be placed at each point where the corners of the squares touch. For channel layouts, some geometric techniques ensure the chosen channels will connect the desired electrical components without crossing over one another.
In their work, the researchers 3D printed objects using a flexible, durable, nonconductive silicone. To provide connectivity channels, they created a custom conductive silicone that can be syringed into the pinholes and then flows through the channels after printing. The silicone is a mixture of a silicone materials designed to have minimal electricity resistance, allowing various types electronics to function.
To validate the CurveBoards, the researchers printed a variety of smart products. Headphones, for instance, came equipped with menu controls for speakers and music-streaming capabilities. An interactive bracelet included a digital display, LED, and photoresistor for heart-rate monitoring, and a step-counting sensor. A teapot included a small camera to track the tea’s color, as well as colored lights on the handle to indicate hot and cold areas. They also printed a wearable e-book reader with a flexible display.
Better, faster prototyping
In a user study, the team investigated the benefits of CurveBoards prototyping. They split six participants with varying prototyping experience into two sections: One used traditional breadboards and a 3D-printed object, and the other used only a CurveBoard of the object. Both sections designed the same prototype but switched back and forth between sections after completing designated tasks. In the end, five of six of the participants preferred prototyping with the CurveBoard. Feedback indicated the CurveBoards were overall faster and easier to work with.
But CurveBoards are not designed to replace breadboards, the researchers say. Instead, they’d work particularly well as a so-called “midfidelity” step in the prototyping timeline, meaning between initial breadboard testing and the final product. “People love breadboards, and there are cases where they’re fine to use,” Zhu says. “This is for when you have an idea of the final object and want to see, say, how people interact with the product. It’s easier to have a CurveBoard instead of circuits stacked on top of a physical object.”
Next, the researchers hope to design general templates of common objects, such as hats and bracelets. Right now, a new CurveBoard must built for each new object. Ready-made templates, however, would let designers quickly experiment with basic circuits and user interaction, before designing their specific CurveBoard.
Additionally, the researchers want to move some early-stage prototyping steps entirely to the software side. The idea is that people can design and test circuits — and possibly user interaction — entirely on the 3D model generated by the software. After many iterations, they can 3D print a more finalized CurveBoard. “That way you’ll know exactly how it’ll work in the real world, enabling fast prototyping,” Zhu says. “That would be a more ‘high-fidelity’ step for prototyping.”
Integrating electronics onto physical prototypes syndicated from https://osmowaterfilters.blogspot.com/
0 notes
Text
Marine Design & Engineering Meeting Barcelona 2019
Marine Design & Engineering Meeting Facultat de Nàutica Barcelona May 8, 2019
Is VisualARQ suitable for the Marine Design? Find it out in this Marine Design & Engineering meeting in Barcelona.
As a Naval Architect, Engineer, Yacht Designer, 3D Modeler or Software Developer, this is a unique event you cannot miss. A collaboration between McNeel, Facultat de Nàutica UPC and Colegio Oficial de Ingenieros Navales y Oceánicos.
In the city of Barcelona, at the historic Facultat de Nàutica, at Pla de Palau, international industry experts will present their latest projects and workflows, and their state-of-the-art CAD/CAM/CAE/VR toolsets.
Keynote speakers include:
Steve Baer and Scott Davidson (Robert McNeel & Associates)
Menno Deij – van Rijswijk (Maritime Research Institute Netherlands – MARIN)
Iuliu Prepelita (Seanaptic Ltd.)
Liam Woolley (Pivot / Goldfish)
Gerard Petersen (RhinoCentre NL)
Stéphane DARDEL (NDAR / Orca3D / ExpressMarine)
Matthieu Arnold (Ship-ST)
Ramón Cárceles (VisualARQ by Asuni)
Dariusz Sawicki (Prometso)
Javi Ferrín and Adriá Fradera (De Antonio Yachts)
Get hands-on with live software demonstrations from solution providers in Hull Design and Fairing, Parametric Engineering, CFD, Piping, Virtual and Augmented Reality, Visualization, Product Configurators, and much more.
Confirmed exhibitors are icreatia, Mindesk, NDAR, Seanaptic Ltd UK, ShapeDiver, Ship-ST, VARJO, Orca3D, ExpressMarine, Packhunt.io, Maverick Render and VisualARQ.
Meet the McNeel staff and learn more about the new functionalities in Rhino WIP (Sub-D, Cycles, QuadMesh, Voxels) and Rhino’s royalty-free Developer Tools, Frameworks and Ecosystem (RhinoCommon, Rhino Inside, Rhino Compute, RhinoVR, YAK, Grasshopper, food4Rhino).
Check out the full agenda here.
Register here…
The post Marine Design & Engineering Meeting Barcelona 2019 appeared first on VisualARQ.
from VisualARQ http://bit.ly/2PBoU8B via IFTTT
0 notes
Text
A Status Report, Plus More Singing the Praises of this Cesspit (Affectionate)
There have been a number of World Heritage Posts from Tumblr that have made both an indelible impression on my mind and dent in my skull since I first read of them: Pukicho finding out that furry artists are liked more than doctors; "terrible job, everyone!" ; "well crunchity munchity do you think that'll stop me?" ; and a bunch of other stuff that would take entirely too long to list here for all the laughs and entertainment I have taken from this wellspring of intrusive thoughts.
But there were also a few that stuck with me for inspirational reasons, and god forgive me for "looking up who originally said this on tumblr.com" being too low on my personal depth chart given everything else currently on my plate:
This also gives me a little additional wiggle room on paraphrasing the message I took from those quotes, too, so... yeah.
"If you feel like a solution to a problem is stupid, just remember a computer is a rock we tricked into thinking. [...] Not to oversimplify things, I mean we had to flatten the rocks first and then carve runes in them to channel the lightning."
You know that problem I've been having with trying to subdivide the UV map so that only a certain portion of an atlas image shows up on it? I've been making the problem entirely too complicated. Turns out you can just add an extra quadmesh in the dimensions you need, and that way the shader can just focus on showing the correct index at the correct face. "Obsoive!" he cried in poor imitation of Curly Howard as he drew attention to the video he attached to the post:
The uniforms I've set up with this should give me an easy way to change the graphics through code, passing While I'm at it, I've gotten the whole "putting 3D objects in a 2D scene" down pat:
Next steps: Setting up the logic to change faces as needed by the game (e.g. covers for the prize board, text to the faces that need it, the logic surrounding the idea of shuffling three prize graphics plus a stop sign three times and distributing three of those shuffles across the three rows), as well as building the players' lower-thirds showing name, point total, trophies earned, and the associated animations involved thereof. Much later comes setting everything up in OBS to fix the shots and progression of the game. Much much later comes populating the CSV with the material I've written (and yet to write) to actually put everything together.
"If it's worth doing, it's worth doing poorly." -- the original poster was recounting something their college professor told them, and it's been the biggest motivator for wanting to get something like this going. yes, it's gonna be shit, i'm gonna make it anyway and learn to make it better next time.
"Nobody remembers that the wright brothers built the worst airplane ever flown."
#wip#art wip#how to produce a game show#pick 3#tumblr memes#inspiration#motivation#godot 4#godot engine#3d mesh problems#problem solved#game dev#game development
0 notes