Friday, 28 November 2025

TEKART HW13

Load the GeoJSON in a Python SOP, read each feature’s country name and its Polygon or MultiPolygon coordinates, convert longitude–latitude to planar XY to create points and closed polygon primitives, tag primitives with attributes for the country name, a numeric country_id, and whether each ring is an outer boundary or a hole, use a Boolean SOP to subtract rings marked as holes per country, then assign a unique color driven by the country_id (or name) so all pieces of the same country share one color, optionally pack by country_id to make each country a single selectable piece.

P4V



Thursday, 27 November 2025

TEKART HW12

NameRules_UE5.json stores categories including Level, Material, Blueprint, Texture, Mesh, Particles, Animation, Audio, Physics, UI, Misc. Each with their own prefix/suffix pairs. Sub-categories get flattened automatically.

NameGenerator.py:

1. Load and flatten rules

The JSON file is parsed and any nested categories are flattened into direct lookup keys. If the file is missing or invalid, the generator stays uninitialized.

2. Generate names
Given an asset type and a base name, the class retrieves the corresponding prefix/suffix and produces the final name. If the asset type is unknown or inputs are invalid, the function handles the error safely and returns None.

3. Add custom rules
Users can inject new naming rules at runtime. Invalid custom rule definitions are caught and reported without interrupting execution.

The output shows the system behaving correctly in every case: initialization, JSON parsing, rule flattening, name generation, custom rule override, and exception handling.

P4V:




TEKART HW11

I implemented a small CSG framework in Python for Houdini. GeometryModule.py provides a base class that creates a clean geometry container under /obj. CSGModule.py extends this by building a standard CSG SOP network (object merges, Boolean, switch, transform, color, normal, OUT) and overloads the +, -, and & operators to perform union, difference, and intersection between CSG objects by wiring their results into a new Boolean node. BoxModule.py and TubeModule.py are thin subclasses that define the actual source geometry (a box and a capped polygon tube) feeding into the CSG pipeline. HW11.py uses these classes to construct the homework’s specific Boolean tree: first a union between a box and a tube, then a chained subtraction between boxes and a tube, and lastly the intersection of both branches, resulting in the final yellow CSG shape visible in the viewport.





















P4V:



Thursday, 6 November 2025

COMMON ART W11

rim-glow / edge-highlight shader using a Custom node.custom HLSL function (OutlineGLow_Color) inside OutlineGlow.ush, which calculates a Fresnel-style rim effect based on the dot product between the world normal and the view vector. The function adds a colored glow around the edges of the object, controlled by parameters like EdgePower (rim width) and GlowIntensity (brightness).

















In the material, the shader is connected through a Custom node that calls this function and outputs to the Emissive Color, blending the glow with the object’s original material. This setup is for easier adjust rim width, glow intensity, and color per material instance, while keeping the logic clean and reusable through the external shader file.

P4V



Sunday, 2 November 2025

COMMON ART W12

 Custom Plugins in Engine

1. Add a Custom Plugin:

Edit --- Plugins --- +Add --- New Plugins --- Blueprint Library

name it ShaderPathPlugin

2. Editing Plugin:

Open ShaderPathPlugin.cpp, ShaderPathPlugin.h, ShaderPathPlugin.Build.cs inside VS2022, input as following code:3. Folder and File:

Create folder called "Shaders" directly under Project (not Content)

Open VS Code, create a text file for debug and save it under Shaders as test.usf file4. Rebuild:

Close UE5 and rebuild solution in VS2022. Open UE5 after compiling.

5. Test on Material:

Add custom node on a new created material.

Add index under Include File Paths and input /Project/Shaders/test.usf

input return green(); for testing

(Output Type needs to be modified according to the return value type of the function that returning. For example, if the function returns float, the output type should be CMOT floating-point 1. Here green() returns half3, so it should be CMOT floating-point 3.

P4V





Saturday, 1 November 2025

COMMON ART W10

M_Waterfall is set to Translucent blend mode under the Surface domain with Unlit shading for efficiency and control, uses Texture Coordinates modified through multiple operations to pan the UVs vertically, representing downward water flow. A Dynamic Parameter allows particle systems to drive animation speed and distortion scale in real time. Two sets of Lerp and Multiply nodes blend between lighter and deeper tones of blue, giving the material depth and a shimmering effect. The Emissive Color output is tied to a combination of particle color and brightness control, producing glowing highlights that mimic sunlight reflection. The Opacity output is modulated by sine-based waves to simulate transparency variation as the water moves.

NS_Waterfall contains two emitters using the custom material. Each emitter spawns particles from a sphere location and applies linear downward velocity to emulate gravity-driven water flow. The Dynamic Material Parameters module connects to the material’s dynamic inputs, enabling animation speed and color variance per emitter. The Align Sprite to Mesh Orientation ensures the particle planes always face the camera, keeping the waterfall visually coherent from all angles. By layering two emitters slightly offset in timing and scale, the system achieves a more natural “sheeted” water appearance with subtle parallax.

P4V