a blog of links related to computer animation and production technology Sponsored by ReelMatters.com

Category: Featured

  • The Perils of Technical Debt – Understanding Its Impact on Security, Usability, and Stability

    In software development, “technical debt” is a term used to describe the accumulation of shortcuts, suboptimal solutions, and outdated code that occur as developers rush to meet deadlines or prioritize immediate goals over long-term maintainability. While this concept initially seems abstract, its consequences are concrete and can significantly affect the security, usability, and stability of software systems.

     

    The Nature of Technical Debt

    Technical debt arises when software engineers choose a less-than-ideal implementation in the interest of saving time or reducing upfront effort. Much like financial debt, these decisions come with an interest rate: over time, the cost of maintaining and updating the system increases, and more effort is required to fix problems that stem from earlier choices. In extreme cases, technical debt can slow development to a crawl, causing future updates or improvements to become far more difficult than they would have been with cleaner, more scalable code.

     

    Impact on Security

    One of the most significant threats posed by technical debt is the vulnerability it creates in terms of software security. Outdated code often lacks the latest security patches or is built on legacy systems that are no longer supported. Attackers can exploit these weaknesses, leading to data breaches, ransomware, or other forms of cybercrime. Furthermore, as systems grow more complex and the debt compounds, identifying and fixing vulnerabilities becomes increasingly challenging. Failing to address technical debt leaves an organization exposed to security risks that may only become apparent after a costly incident.

     

    Impact on Usability

    Technical debt also affects the user experience. Systems burdened by outdated code often become clunky and slow, leading to poor usability. Engineers may find themselves continuously patching minor issues rather than implementing larger, user-centric improvements. Over time, this results in a product that feels antiquated, is difficult to use, or lacks modern functionality. In a competitive market, poor usability can alienate users, causing a loss of confidence and driving them to alternative products or services.

     

    Impact on Stability

    Stability is another critical area impacted by technical debt. As developers add features or make updates to systems weighed down by previous quick fixes, they run the risk of introducing bugs or causing system crashes. The tangled, fragile nature of code laden with technical debt makes troubleshooting difficult and increases the likelihood of cascading failures. Over time, instability in the software can erode both the trust of users and the efficiency of the development team, as more resources are dedicated to resolving recurring issues rather than innovating or expanding the system’s capabilities.

     

    The Long-Term Costs of Ignoring Technical Debt

    While technical debt can provide short-term gains by speeding up initial development, the long-term costs are much higher. Unaddressed technical debt can lead to project delays, escalating maintenance costs, and an ever-widening gap between current code and modern best practices. The more technical debt accumulates, the harder and more expensive it becomes to address. For many companies, failing to pay down this debt eventually results in a critical juncture: either invest heavily in refactoring the codebase or face an expensive overhaul to rebuild from the ground up.

     

    Conclusion

    Technical debt is an unavoidable aspect of software development, but understanding its perils is essential for minimizing its impact on security, usability, and stability. By actively managing technical debt—whether through regular refactoring, code audits, or simply prioritizing long-term quality over short-term expedience—organizations can avoid the most dangerous consequences and ensure their software remains robust and reliable in an ever-changing technological landscape.

     

    , , ,
  • Convert 2D Images to 3D Models

     

    https://www.news.viverse.com/post/pixel-to-polygon-converting-2d-images-to-3d-models-top-tools-revealed

     

    https://www.rankred.com/convert-2d-images-to-3d/

     

    (more…)

    , , , , , , ,
  • Free fonts

    https://fontlibrary.org/

     

    https://fontsource.org/

    Open-source fonts packaged into individual NPM packages for self-hosting in web applications. Self-hosting fonts can significantly improve website performance, remain version-locked, work offline, and offer more privacy.

     

    https://www.awwwards.com/awwwards/collections/free-fonts

     

    https://www.fontsquirrel.com/

     

    https://www.freefaces.gallery

     

    https://www.1001freefonts.com/

     

    http://www.dafont.com/

     

    http://www.fontspace.com/popular/fonts

     

    https://www.urbanfonts.com/free-fonts.htm

     

    http://www.1001fonts.com/poster-fonts.html

     

    How to use @font-face in CSS

    The @font-face rule allows custom fonts to be loaded on a webpage.

    https://css-tricks.com/snippets/css/using-font-face-in-css/

    , , ,
  • Most common ways to smooth 3D prints

    Most common ways to smooth 3D prints

     

    https://www.xometry.com/resources/3d-printing/smooth-3d-prints/

     

    1. Using Paint and Sanding Material for PLA filaments
    2. Using Abrasive Smoothing Methods
    3. Using XTC-3D epoxy resin
    4. Using 3D Gloop
    5. Using PolyMaker PolySmooth PVB Filament
    6. Using Chemical Smoothing like Resin, Ethyl Acetate, Acetone for ABS filaments or Isopropyl Alcohol for PVB filaments
    7. Using Heat Gun
    8. Using hardware like Polymaker Polysher
    9. Automotive Spray Putty for PLA
    10. Using bees wax
    11. Changing inner/outer order

     

    Note: Some methods apply to only a few types of 3D print technologies

    3D Printing Hack – Smoothing 3D Prints with Resin

     

     

    (more…)

    ,
  • Want to build a start up company that lasts? Think three-layer cake

    https://www.fastcompany.com/91131427/want-to-build-a-company-that-lasts-think-three-layer-cake

     

    Building a successful business requires a focus on three key elements: product excellence, go-to-market strategy, and operational excellence. Neglecting any of these areas can lead to failure, as evidenced by the high percentage of startups that don’t make it past the five-year mark. Founders and CEOs must ensure a solid product foundation while also integrating effective sales, marketing, and management strategies to achieve sustainable growth and scale.

     

     

    • Foundation: Product Excellence, Core Values and Mission
      • Core Values: These are the guiding principles that dictate behavior and action within the company. They form the ethical foundation and are crucial for maintaining consistency in decision-making.
      • Mission: This defines the company’s purpose and goals. A clear and compelling mission helps align the team and provides a sense of direction.
      • Efficiency and Scalability: This layer focuses on creating efficient processes that can scale as the company grows. Streamlined operations reduce costs and increase productivity.

     

    • Structure: Operational Excellence and Innovation
      • Operational Excellence: Efficient processes, quality control, and continuous improvement fall into this layer. Ensuring that the company operates smoothly and effectively is crucial for sustainability.
      • Innovation: Staying competitive requires innovation. This involves developing new products, services, or processes that add value and keep the company relevant in the market.
      • Quality Control and Continuous Improvement: Ensuring that operational processes are of high quality and constantly improving helps maintain product excellence and customer satisfaction.
      • Technology and Infrastructure: Investing in the right technology and infrastructure to support business operations is vital. This includes everything from manufacturing equipment to software systems that enhance operational efficiency.

     

    • Strategy: Go-to-Market Strategy, Vision and Long-Term Planning
      • Vision: A forward-looking vision inspires and motivates the team. It outlines where the company aims to be in the future and helps in setting long-term goals.
      • Strategic Planning: This involves setting long-term goals and determining the actions and resources needed to achieve them. It includes market analysis, competitive strategy, and growth planning.
      • Market Understanding: A deep understanding of the target market, including customer segments, competitors, and market trends, is essential. This knowledge helps in positioning the product effectively.
      • Marketing and Sales Execution: This involves creating a robust marketing plan that includes branding, messaging, and advertising strategies to attract and retain customers. Additionally, building a strong sales strategy ensures that the product reaches the right customers through the right channels.
      • Customer Acquisition and Retention: Effective strategies for acquiring new customers and retaining existing ones are critical. This includes loyalty programs, customer service excellence, and engagement initiatives.

     

     

    , ,
  • Generative AI Glossary

    https://education.civitai.com/generative-ai-glossary/

     

    ,
  • GretagMacbeth Color Checker Numeric Values and Middle Gray

    The human eye perceives half scene brightness not as the linear 50% of the present energy (linear nature values) but as 18% of the overall brightness. We are biased to perceive more information in the dark and contrast areas. A Macbeth chart helps with calibrating back into a photographic capture into this “human perspective” of the world.

     

    https://en.wikipedia.org/wiki/Middle_gray

     

    In photography, painting, and other visual arts, middle gray or middle grey is a tone that is perceptually about halfway between black and white on a lightness scale in photography and printing, it is typically defined as 18% reflectance in visible light

     

    Light meters, cameras, and pictures are often calibrated using an 18% gray card[4][5][6] or a color reference card such as a ColorChecker. On the assumption that 18% is similar to the average reflectance of a scene, a grey card can be used to estimate the required exposure of the film.

     

    https://en.wikipedia.org/wiki/ColorChecker

     

     

    https://photo.stackexchange.com/questions/968/how-can-i-correctly-measure-light-using-a-built-in-camera-meter

     

    The exposure meter in the camera does not know whether the subject itself is bright or not. It simply measures the amount of light that comes in, and makes a guess based on that. The camera will aim for 18% gray independently, meaning if you take a photo of an entirely white surface, and an entirely black surface you should get two identical images which both are gray (at least in theory). Thus enters the Macbeth chart.

     

    <!–more–>

     

    Note that Chroma Key Green is reasonably close to an 18% gray reflectance.

    http://www.rags-int-inc.com/PhotoTechStuff/MacbethTarget/

     

    No Camera Data

     

    https://upload.wikimedia.org/wikipedia/commons/b/b4/CIE1931xy_ColorChecker_SMIL.svg

     

    RGB coordinates of the Macbeth ColorChecker

     

    https://pdfs.semanticscholar.org/0e03/251ad1e6d3c3fb9cb0b1f9754351a959e065.pdf

    , , , ,
  • VFX pipeline – Render Wall management topics

    1: Introduction Title: Managing a VFX Facility’s Render Wall

    • Briefly introduce the importance of managing a VFX facility’s render wall.
    • Highlight how efficient management contributes to project timelines and overall productivity.

     

    2: Daily Overview Title: Daily Management Routine

    • Monitor Queues: Begin each day by reviewing render queues to assess workload and priorities.
    • Resource Allocation: Allocate resources based on project demands and available hardware.
    • Job Prioritization: Set rendering priorities according to project deadlines and importance.
    • Queue Optimization: Adjust queue settings to maximize rendering efficiency.

     

    3: Resource Allocation Title: Efficient Resource Management

    • Hardware Utilization: Distribute rendering tasks across available machines for optimal resource usage.
    • Balance Workloads: Avoid overloading specific machines while others remain underutilized.
    • Consider Off-Peak Times: Schedule resource-intensive tasks during off-peak hours to enhance overall performance.

     

    4: Job Prioritization Title: Prioritizing Rendering Tasks

    • Deadline Sensitivity: Give higher priority to tasks with imminent deadlines to ensure timely delivery.
    • Critical Shots: Identify shots crucial to the project’s narrative or visual impact for prioritization.
    • Dependent Shots: Sequence shots that depend on others should be prioritized together.

     

    5: Queue Optimization and Reporting Title: Streamlining Render Queues

    • Dependency Management: Set up dependencies to ensure shots are rendered in the correct order.
    • Error Handling: Implement automated error detection and requeueing mechanisms.
    • Progress Tracking: Regularly monitor rendering progress and update stakeholders.
    • Data Management: Archive completed renders and remove redundant data to free up storage.
    • Reporting: Provide daily reports on rendering status, resource usage, and potential bottlenecks.

     

    6: Conclusion Title: Enhancing VFX Workflow

    • Effective management of a VFX facility’s render wall is essential for project success.
    • Daily monitoring, resource allocation, job prioritization, queue optimization, and reporting are key components.
    • A well-managed render wall ensures efficient production, timely delivery, and overall project success.
    ,
  • Image rendering bit depth

    The terms 16-bit, 16-bit float, and 32-bit refer to different data formats used to store and represent image information, as bits per pixel.

     

    https://en.wikipedia.org/wiki/Color_depth

     

    In color technology, color depth also known as bit depth, is either the number of bits used to indicate the color of a single pixel, OR the number of bits used for each color component of a single pixel.

     

    When referring to a pixel, the concept can be defined as bits per pixel (bpp).

     

    When referring to a color component, the concept can be defined as bits per component, bits per channel, bits per color (all three abbreviated bpc), and also bits per pixel component, bits per color channel or bits per sample (bps). Modern standards tend to use bits per component, but historical lower-depth systems used bits per pixel more often.

     

    Color depth is only one aspect of color representation, expressing the precision with which the amount of each primary can be expressed; the other aspect is how broad a range of colors can be expressed (the gamut). The definition of both color precision and gamut is accomplished with a color encoding specification which assigns a digital code value to a location in a color space.

     

    (more…)

    ,
  • AI Data Laundering: How Academic and Nonprofit Researchers Shield Tech Companies from Accountability

    https://waxy.org/2022/09/ai-data-laundering-how-academic-and-nonprofit-researchers-shield-tech-companies-from-accountability/

     

    “Simon Willison created a Datasette browser to explore WebVid-10M, one of the two datasets used to train the video generation model, and quickly learned that all 10.7 million video clips were scraped from Shutterstock, watermarks and all.”

     

    “In addition to the Shutterstock clips, Meta also used 10 million video clips from this 100M video dataset from Microsoft Research Asia. It’s not mentioned on their GitHub, but if you dig into the paper, you learn that every clip came from over 3 million YouTube videos.”

     

    “It’s become standard practice for technology companies working with AI to commercially use datasets and models collected and trained by non-commercial research entities like universities or non-profits.”

     

    “Like with the artists, photographers, and other creators found in the 2.3 billion images that trained Stable Diffusion, I can’t help but wonder how the creators of those 3 million YouTube videos feel about Meta using their work to train their new model.”

    , ,
  • Types of Film Lights and their efficiency – CRI, Color Temperature and Luminous Efficacy

    nofilmschool.com/types-of-film-lights

     

    “Not every light performs the same way. Lights and lighting are tricky to handle. You have to plan for every circumstance. But the good news is, lighting can be adjusted. Let’s look at different factors that affect lighting in every scene you shoot. ”

    Use CRI, Luminous Efficacy and color temperature controls to match your needs.

     

    Color Temperature
    Color temperature describes the “color” of white light by a light source radiated by a perfect black body at a given temperature measured in degrees Kelvin

     

    https://www.pixelsham.com/2019/10/18/color-temperature/

     

    CRI
    “The Color Rendering Index is a measurement of how faithfully a light source reveals the colors of whatever it illuminates, it describes the ability of a light source to reveal the color of an object, as compared to the color a natural light source would provide. The highest possible CRI is 100. A CRI of 100 generally refers to a perfect black body, like a tungsten light source or the sun. ”

     

    https://www.studiobinder.com/blog/what-is-color-rendering-index/

     

     

     

    https://en.wikipedia.org/wiki/Color_rendering_index

     

    Light source CCT (K) CRI
    Low-pressure sodium (LPS/SOX) 1800 −44
    Clear mercury-vapor 6410 17
    High-pressure sodium (HPS/SON) 2100 24
    Coated mercury-vapor 3600 49
    Halophosphate warm-white fluorescent 2940 51
    Halophosphate cool-white fluorescent 4230 64
    Tri-phosphor warm-white fluorescent 2940 73
    Halophosphate cool-daylight fluorescent 6430 76
    “White” SON 2700 82
    Standard LED Lamp 2700–5000 83
    Quartz metal halide 4200 85
    Tri-phosphor cool-white fluorescent 4080 89
    High-CRI LED lamp (blue LED) 2700–5000 95
    Ceramic discharge metal-halide lamp 5400 96
    Ultra-high-CRI LED lamp (violet LED) 2700–5000 99
    Incandescent/halogen bulb 3200 100

     

    Luminous Efficacy
    Luminous efficacy is a measure of how well a light source produces visible light, watts out versus watts in, measured in lumens per watt. In other words it is a measurement that indicates the ability of a light source to emit visible light using a given amount of power. It is a ratio of the visible energy to the power that goes into the bulb.

     

    FILM LIGHT TYPES

    https://www.studiobinder.com/blog/video-lighting-kits/?utm_campaign=Weekly_Newsletter&utm_medium=email&utm_source=sendgrid&utm_term=production-lighting&utm_content=production-lighting

     

     

     

    Consumer light types

     

    https://www.researchgate.net/figure/Emission-spectra-of-different-light-sources-a-incandescent-tungsten-light-bulb-b_fig1_312320039

     

    http://dev.informationdisplay.org/IDArchive/2015/NovemberDecember/FrontlineTechnologyCandleLikeEmission.aspx

     

     

    Tungsten Lights
    Light interiors and match domestic places or office locations. Daylight.

    Advantages of Tungsten Lights
    Almost perfect color rendition
    Low cost
    Does not use mercury like CFLs (fluorescent) or mercury vapor lights
    Better color temperature than standard tungsten
    Longer life than a conventional incandescent
    Instant on to full brightness, no warm-up time, and it is dimmable

    Disadvantages of Tungsten Lights
    Extremely hot
    High power requirement
    The lamp is sensitive to oils and cannot be touched
    The bulb is capable of blowing and sending hot glass shards outward. A screen or layer of glass on the outside of the lamp can protect users.

     

     

    Hydrargyrum medium-arc iodide lights
    HMI’s are used when high output is required. They are also used to recreate sun shining through windows or to fake additional sun while shooting exteriors. HMIs can light huge areas at once.

    Advantages of HMI lights
    High light output
    Higher efficiency
    High color temperature

    Disadvantages of HMI lights:
    High cost
    High power requirement
    Dims only to about 50%
    the color temperature increases with dimming
    HMI bulbs will explode is dropped and release toxic chemicals

     

     

    Fluorescent
    Fluorescent film lighting is achieved by laying multiple tubes next to each other, combining as many as you want for the desired brightness. The good news is you can choose your bulbs to either be warm or cool depending on the scenario you’re shooting. You want to get these bulbs close to the subject because they’re not great at opening up spaces. Fluorescent lighting is used to light interiors and is more compact and cooler than tungsten or HMI lighting.

    Advantages of Fluorescent lights
    High efficiency
    Low power requirement
    Low cost
    Long lamp life
    Cool
    Capable of soft even lighting over a large area
    Lightweight

    Disadvantages of Fluorescent lights
    Flicker
    High CRI
    Domestic tubes have low CRI & poor color rendition.

     

     

    LED
    LED’s are more and more common on film sets. You can use batteries to power them. That makes them portable and sleek – no messy cabled needed. You can rig your own panels of LED lights to fit any space necessary as well. LED’s can also power Fresnel style lamp heads such as the Arri L-series.

    Advantages of LED light
    Soft, even lighting
    Pure light without UV-artifacts
    High efficiency
    Low power consumption, can be battery powered
    Excellent dimming by means of pulse width modulation control
    Long lifespan
    Environmentally friendly
    Insensitive to shock
    No risk of explosion

    Disadvantages of LED light
    High cost.
    LED’s are currently still expensive for their total light output

    (more…)

    , , ,
  • Advanced Computer Vision with Python OpenCV and Mediapipe

    https://www.freecodecamp.org/news/advanced-computer-vision-with-python/

     

    https://www.freecodecamp.org/news/how-to-use-opencv-and-python-for-computer-vision-and-ai/

     

     

    Working for a VFX (Visual Effects) studio provides numerous opportunities to leverage the power of Python and OpenCV for various tasks. OpenCV is a versatile computer vision library that can be applied to many aspects of the VFX pipeline. Here’s a detailed list of opportunities to take advantage of Python and OpenCV in a VFX studio:

     

    1. Image and Video Processing:
      • Preprocessing: Python and OpenCV can be used for tasks like resizing, color correction, noise reduction, and frame interpolation to prepare images and videos for further processing.
      • Format Conversion: Convert between different image and video formats using OpenCV’s capabilities.
    2. Tracking and Matchmoving:
      • Feature Detection and Tracking: Utilize OpenCV to detect and track features in image sequences, which is essential for matchmoving tasks to integrate computer-generated elements into live-action footage.
    3. Rotoscoping and Masking:
      • Segmentation and Masking: Use OpenCV for creating and manipulating masks and alpha channels for various VFX tasks, like isolating objects or characters from their backgrounds.
    4. Camera Calibration:
      • Intrinsic and Extrinsic Calibration: Python and OpenCV can help calibrate cameras for accurate 3D scene reconstruction and camera tracking.
    5. 3D Scene Reconstruction:
      • Stereoscopy: Use OpenCV to process stereoscopic image pairs for creating 3D depth maps and generating realistic 3D scenes.
      • Structure from Motion (SfM): Implement SfM techniques to create 3D models from 2D image sequences.
    6. Green Screen and Blue Screen Keying:
      • Chroma Keying: Implement advanced keying algorithms using OpenCV to seamlessly integrate actors and objects into virtual environments.
    7. Particle and Fluid Simulations:
      • Particle Tracking: Utilize OpenCV to track and manipulate particles in fluid simulations for more realistic visual effects.
    8. Motion Analysis:
      • Optical Flow: Implement optical flow algorithms to analyze motion patterns in footage, useful for creating dynamic VFX elements that follow the motion of objects.
    9. Virtual Set Extension:
      • Camera Projection: Use camera calibration techniques to project virtual environments onto physical sets, extending the visual scope of a scene.
    10. Color Grading:
      • Color Correction: Implement custom color grading algorithms to match the color tones and moods of different shots.
    11. Automated QC (Quality Control):
      • Artifact Detection: Develop Python scripts to automatically detect and flag visual artifacts like noise, flicker, or compression artifacts in rendered frames.
    12. Data Analysis and Visualization:
      • Performance Metrics: Use Python to analyze rendering times and optimize the rendering process.
      • Data Visualization: Generate graphs and charts to visualize render farm usage, project progress, and resource allocation.
    13. Automating Repetitive Tasks:
      • Batch Processing: Automate repetitive tasks like resizing images, applying filters, or converting file formats across multiple shots.
    14. Machine Learning Integration:
      • Object Detection: Integrate machine learning models (using frameworks like TensorFlow or PyTorch) to detect and track specific objects or elements within scenes.
    15. Pipeline Integration:
      • Custom Tools: Develop Python scripts and tools to integrate OpenCV-based processes seamlessly into the studio’s pipeline.
    16. Real-time Visualization:
      • Live Previsualization: Implement real-time OpenCV-based visualizations to aid decision-making during the preproduction stage.
    17. VR and AR Integration:
      • Augmented Reality: Use Python and OpenCV to integrate virtual elements into real-world footage, creating compelling AR experiences.
    18. Camera Effects:
      • Lens Distortion: Correct lens distortions and apply various camera effects using OpenCV, contributing to the desired visual style.

     

    Interpolating frames from an EXR sequence using OpenCV can be useful when you have only every second frame of a final render and you want to create smoother motion by generating intermediate frames. However, keep in mind that interpolating frames might not always yield perfect results, especially if there are complex changes between frames. Here’s a basic example of how you might use OpenCV to achieve this:

     

    import cv2
    import numpy as np
    import os
    
    # Replace with the path to your EXR frames
    exr_folder = "path_to_exr_frames"
    
    # Replace with the appropriate frame extension and naming convention
    frame_template = "frame_{:04d}.exr"
    
    # Define the range of frame numbers you have
    start_frame = 1
    end_frame = 100
    step = 2
    
    # Define the output folder for interpolated frames
    output_folder = "output_interpolated_frames"
    os.makedirs(output_folder, exist_ok=True)
    
    # Loop through the frame range and interpolate
    for frame_num in range(start_frame, end_frame + 1, step):
        frame_path = os.path.join(exr_folder, frame_template.format(frame_num))
        next_frame_path = os.path.join(exr_folder, frame_template.format(frame_num + step))
    
        if os.path.exists(frame_path) and os.path.exists(next_frame_path):
            frame = cv2.imread(frame_path, cv2.IMREAD_ANYDEPTH | cv2.IMREAD_COLOR)
            next_frame = cv2.imread(next_frame_path, cv2.IMREAD_ANYDEPTH | cv2.IMREAD_COLOR)
    
            # Interpolate frames using simple averaging
            interpolated_frame = (frame + next_frame) / 2
    
            # Save interpolated frame
            output_path = os.path.join(output_folder, frame_template.format(frame_num))
            cv2.imwrite(output_path, interpolated_frame)
    
            print(f"Interpolated frame {frame_num}") # alternatively: print("Interpolated frame {}".format(frame_num))
    
    
    
    

     

    Please note the following points:

     

    • The above example uses simple averaging to interpolate frames. More advanced interpolation methods might provide better results, such as motion-based algorithms like optical flow-based interpolation.
    • EXR files can store high dynamic range (HDR) data, so make sure to use cv2.IMREAD_ANYDEPTH flag when reading these files.
    • OpenCV might not support EXR format directly. You might need to use a library like exr to read and manipulate EXR files, and then convert them to OpenCV-compatible formats.
    • Consider the characteristics of your specific render when using interpolation. If there are large changes between frames, the interpolation might lead to artifacts.
    • Experiment with different interpolation methods and parameters to achieve the desired result.
    • For a more advanced and accurate interpolation, you might need to implement or use existing algorithms that take into account motion estimation and compensation.

     

    , , ,
  • Key/Fill ratios and scene composition using false colors

    www.videomaker.com/article/c03/18984-how-to-calculate-contrast-ratios-for-more-professional-lighting-setups

     

     

    To measure the contrast ratio you will need a light meter. The process starts with you measuring the main source of light, or the key light.

     

    Get a reading from the brightest area on the face of your subject. Then, measure the area lit by the secondary light, or fill light. To make sense of what you have just measured you have to understand that the information you have just gathered is in F-stops, a measure of light. With each additional F-stop, for example going one stop from f/1.4 to f/2.0, you create a doubling of light. The reverse is also true; moving one stop from f/8.0 to f/5.6 results in a halving of the light.

     

    Let’s say you grabbed a measurement from your key light of f/8.0. Then, when you measured your fill light area, you get a reading of f/4.0. This will lead you to a contrast ratio of 4:1 because there are two stops between f/4.0 and f/8.0 and each stop doubles the amount of light. In other words, two stops x twice the light per stop = four times as much light at f/8.0 than at f/4.0.

     

    theslantedlens.com/2017/lighting-ratios-photo-video/

     

    Examples in the post

    (more…)

    , , ,
  • RawTherapee – a free, open source, cross-platform raw image and HDRi processing program

    rawtherapee.com/

     

    5.10 of this tool includes excellent tools to clean up cr2 and cr3 used on set to support HDRI processing.
    Converting raw to AcesCG 32 bit tiffs with metadata. 

     

     

     

    , , , ,
  • Photography basics: Exposure Value vs Photographic Exposure vs Il/Luminance vs Pixel luminance measurements

    Also see: https://www.pixelsham.com/2015/05/16/how-aperture-shutter-speed-and-iso-affect-your-photos/

     

    In photography, exposure value (EV) is a number that represents a combination of a camera’s shutter speed and f-number, such that all combinations that yield the same exposure have the same EV (for any fixed scene luminance).

     

     

    The EV concept was developed in an attempt to simplify choosing among combinations of equivalent camera settings. Although all camera settings with the same EV nominally give the same exposure, they do not necessarily give the same picture. EV is also used to indicate an interval on the photographic exposure scale. 1 EV corresponding to a standard power-of-2 exposure step, commonly referred to as a stop

     

    EV 0 corresponds to an exposure time of 1 sec and a relative aperture of f/1.0. If the EV is known, it can be used to select combinations of exposure time and f-number.

     

    https://www.streetdirectory.com/travel_guide/141307/photography/exposure_value_ev_and_exposure_compensation.html

    Note EV does not equal to photographic exposure. Photographic Exposure is defined as how much light hits the camera’s sensor. It depends on the camera settings mainly aperture and shutter speed. Exposure value (known as EV) is a number that represents the exposure setting of the camera.

     

    Thus, strictly, EV is not a measure of luminance (indirect or reflected exposure) or illuminance (incidental exposure); rather, an EV corresponds to a luminance (or illuminance) for which a camera with a given ISO speed would use the indicated EV to obtain the nominally correct exposure. Nonetheless, it is common practice among photographic equipment manufacturers to express luminance in EV for ISO 100 speed, as when specifying metering range or autofocus sensitivity.

     

    The exposure depends on two things: how much light gets through the lenses to the camera’s sensor and for how long the sensor is exposed. The former is a function of the aperture value while the latter is a function of the shutter speed. Exposure value is a number that represents this potential amount of light that could hit the sensor. It is important to understand that exposure value is a measure of how exposed the sensor is to light and not a measure of how much light actually hits the sensor. The exposure value is independent of how lit the scene is. For example a pair of aperture value and shutter speed represents the same exposure value both if the camera is used during a very bright day or during a dark night.

     

    Each exposure value number represents all the possible shutter and aperture settings that result in the same exposure. Although the exposure value is the same for different combinations of aperture values and shutter speeds the resulting photo can be very different (the aperture controls the depth of field while shutter speed controls how much motion is captured).

    EV 0.0 is defined as the exposure when setting the aperture to f-number 1.0 and the shutter speed to 1 second. All other exposure values are relative to that number. Exposure values are on a base two logarithmic scale. This means that every single step of EV – plus or minus 1 – represents the exposure (actual light that hits the sensor) being halved or doubled.

    https://www.streetdirectory.com/travel_guide/141307/photography/exposure_value_ev_and_exposure_compensation.html

     

    Formula

    https://en.wikipedia.org/wiki/Exposure_value

     

    https://www.scantips.com/lights/math.html

     

    which means   2EV = N² / t

    where

    • N is the relative aperture (f-number) Important: Note that f/stop values must first be squared in most calculations
    • t is the exposure time (shutter speed) in seconds

    EV 0 corresponds to an exposure time of 1 sec and an aperture of f/1.0.

    Example: If f/16 and 1/4 second, then this is:

    (N² / t) = (16 × 16 ÷ 1/4) = (16 × 16 × 4) = 1024.

    Log₂(1024) is EV 10. Meaning, 210 = 1024.

     

    Collecting photographic exposure using Light Meters

    https://photo.stackexchange.com/questions/968/how-can-i-correctly-measure-light-using-a-built-in-camera-meter

    The exposure meter in the camera does not know whether the subject itself is bright or not. It simply measures the amount of light that comes in, and makes a guess based on that. The camera will aim for 18% gray, meaning if you take a photo of an entirely white surface, and an entirely black surface you should get two identical images which both are gray (at least in theory)

    https://en.wikipedia.org/wiki/Light_meter

    For reflected-light meters, camera settings are related to ISO speed and subject luminance by the reflected-light exposure equation:

    where

    • N is the relative aperture (f-number)
    • t is the exposure time (“shutter speed”) in seconds
    • L is the average scene luminance
    • S is the ISO arithmetic speed
    • K is the reflected-light meter calibration constant

     

    For incident-light meters, camera settings are related to ISO speed and subject illuminance by the incident-light exposure equation:

    where

    • E is the illuminance (in lux)
    • C is the incident-light meter calibration constant

     

    Two values for K are in common use: 12.5 (Canon, Nikon, and Sekonic) and 14 (Minolta, Kenko, and Pentax); the difference between the two values is approximately 1/6 EV.
    For C a value of 250 is commonly used.

     

    Nonetheless, it is common practice among photographic equipment manufacturers to also express luminance in EV for ISO 100 speed. Using K = 12.5, the relationship between EV at ISO 100 and luminance L is then :

    L = 2(EV-3)

     

    The situation with incident-light meters is more complicated than that for reflected-light meters, because the calibration constant C depends on the sensor type. Illuminance is measured with a flat sensor; a typical value for C is 250 with illuminance in lux. Using C = 250, the relationship between EV at ISO 100 and illuminance E is then :

     

    E = 2.5 * 2(EV)

     

    https://nofilmschool.com/2018/03/want-easier-and-faster-way-calculate-exposure-formula

    Three basic factors go into the exposure formula itself instead: aperture, shutter, and ISO. Plus a light meter calibration constant.

    f-stop²/shutter (in seconds) = lux * ISO/C

     

    If you at least know four of those variables, you’ll be able to calculate the missing value.

    So, say you want to figure out how much light you’re going to need in order to shoot at a certain f-stop. Well, all you do is plug in your values (you should know the f-stop, ISO, and your light meter calibration constant) into the formula below:

    lux = C (f-stop²/shutter (in seconds))/ISO

     

    Exposure Value Calculator:

    https://snapheadshots.com/resources/exposure-and-light-calculator

     

    https://www.scantips.com/lights/exposurecalc.html

     

    https://www.pointsinfocus.com/tools/exposure-settings-ev-calculator/#google_vignette

     

    From that perspective, an exposure stop is a measurement of Exposure and provides a universal linear scale to measure the increase and decrease in light, exposed to the image sensor, due to changes in shutter speed, iso & f-stop.
    +-1 stop is a doubling or halving of the amount of light let in when taking a photo.
    1 EV is just another way to say one stop of exposure change.

     

    One major use of EV (Exposure Value) is just to measure any change of exposure, where one EV implies a change of one stop of exposure. Like when we compensate our picture in the camera.

     

    If the picture comes out too dark, our manual exposure could correct the next one by directly adjusting one of the three exposure controls (f/stop, shutter speed, or ISO). Or if using camera automation, the camera meter is controlling it, but we might apply +1 EV exposure compensation (or +1 EV flash compensation) to make the result goal brighter, as desired. This use of 1 EV is just another way to say one stop of exposure change.

     

    On a perfect day the difference from sampling the sky vs the sun exposure with diffusing spot meters is about 3.2 exposure difference.

     ~15.4 EV for the sun
     ~12.2 EV for the sky
    

    That is as a ballpark. All still influenced by surroundings, accuracy parameters, fov of the sensor…

     

     

     

    EV calculator

    https://www.scantips.com/lights/evchart.html#calc

    http://www.fredparker.com/ultexp1.htm

     

    Exposure value is basically used to indicate an interval on the photographic exposure scale, with a difference of 1 EV corresponding to a standard power-of-2 exposure step, also commonly referred to as a “stop”.

     

    https://contrastly.com/a-guide-to-understanding-exposure-value-ev/

     

    Retrieving photographic exposure from an image

    All you can hope to measure with your camera and some images is the relative reflected luminance. Even if you have the camera settings. https://en.wikipedia.org/wiki/Relative_luminance

     

    If you REALLY want to know the amount of light in absolute radiometric units, you’re going to need to use some kind of absolute light meter or measured light source to calibrate your camera. For references on how to do this, see: Section 2.5 Obtaining Absolute Radiance from http://www.pauldebevec.com/Research/HDR/debevec-siggraph97.pdf

     

    IF you are still trying to gauge relative brightness, the level of the sun in Nuke can vary, but it should be in the thousands. Ie: between 30,000 and 65,0000 rgb value depending on time of the day, season and atmospherics.

     

    The values for a 12 o’clock sun, with the sun sampled at EV 15.5 (shutter 1/30, ISO 100, F22) is 32.000 RGB max values (or 32,000 pixel luminance).
    The thing to keep an eye for is the level of contrast between sunny side/fill side.  The terminator should be quite obvious,  there can be up to 3 stops difference between fill/key in sunny lit objects.

     

    Note: In Foundry’s Nuke, the software will map 18% gray to whatever your center f/stop is set to in the viewer settings (f/8 by default… change that to EV by following the instructions below).
    You can experiment with this by attaching an Exposure node to a Constant set to 0.18, setting your viewer read-out to Spotmeter, and adjusting the stops in the node up and down. You will see that a full stop up or down will give you the respective next value on the aperture scale (f8, f11, f16 etc.).
    One stop doubles or halves the amount or light that hits the filmback/ccd, so everything works in powers of 2.
    So starting with 0.18 in your constant, you will see that raising it by a stop will give you .36 as a floating point number (in linear space), while your f/stop will be f/11 and so on.

    If you set your center stop to 0 (see below) you will get a relative readout in EVs, where EV 0 again equals 18% constant gray.
    Note: make sure to set your Nuke read node to ‘raw data’

     

    In other words. Setting the center f-stop to 0 means that in a neutral plate, the middle gray in the macbeth chart will equal to exposure value 0. EV 0 corresponds to an exposure time of 1 sec and an aperture of f/1.0.

     

    To switch Foundry’s Nuke’s SpotMeter to return the EV of an image, click on the main viewport, and then press s, this opens the viewer’s properties. Now set the center f-stop to 0 in there. And the SpotMeter in the viewport will change from aperture and fstops to EV.

     

    If you are trying to gauge the EV from the pixel luminance in the image:
    – Setting the center f-stop to 0 means that in a neutral plate, the middle 18% gray will equal to exposure value 0.
    – So if EV 0 = 0.18 middle gray in nuke which equal to a pixel luminance of 0.18, doubling that value, doubles the EV.

    .18 pixel luminance = 0EV
    .36 pixel luminance = 1EV
    .72 pixel luminance = 2EV
    1.46 pixel luminance = 3EV
    ...
    

     

    This is a Geometric Progression function: xn = ar(n-1)

    The most basic example of this function is 1,2,4,8,16,32,… The sequence starts at 1 and doubles each time, so

    • a=1 (the first term)
    • r=2 (the “common ratio” between terms is a doubling)

    And we get:

    {a, ar, ar2, ar3, … }

    = {1, 1×2, 1×22, 1×23, … }

    = {1, 2, 4, 8, … }

    In this example the function translates to: n = 2(n-1)
    You can graph this curve through this expression: x = 2(y-1)  :

    You can go back and forth between the two values through a geometric progression function and a log function:

    (Note: in a spreadsheet this is: = POWER(2; cell# -1)  and  =LOG(cell#, 2)+1) )

    2(y-1) log2(x)+1
    x y
    1 1
    2 2
    4 3
    8 4
    16 5
    32 6
    64 7
    128 8
    256 9
    512 10
    1024 11
    2048 12
    4096 13

     

    Translating this into a geometric progression between an image pixel luminance and EV:

    (more…)

    , ,
  • HDRI Median Cut plugin

    www.hdrlabs.com/picturenaut/plugins.html

     

     

    Note. The Median Cut algorithm is typically used for color quantization, which involves reducing the number of colors in an image while preserving its visual quality. It doesn’t directly provide a way to identify the brightest areas in an image. However, if you’re interested in identifying the brightest areas, you might want to look into other methods like thresholding, histogram analysis, or edge detection, through openCV for example.

     

    Here is an openCV example:

     

    # bottom left coordinates = 0,0
    import numpy as np
    import cv2
    
    # Load the HDR or EXR image
    image = cv2.imread('your_image_path.exr', cv2.IMREAD_UNCHANGED)  # Load as-is without modification
    
    # Calculate the luminance from the HDR channels (assuming RGB format)
    luminance = np.dot(image[..., :3], [0.299, 0.587, 0.114])
    
    # Set a threshold value based on estimated EV
    threshold_value = 2.4  # Estimated threshold value based on 4.8 EV
    
    # Apply the threshold to identify bright areas
    # The luminance array contains the calculated luminance values for each pixel in the image. # The threshold_value is a user-defined value that represents a cutoff point, separating "bright" and "dark" areas in terms of perceived luminance.
    thresholded = (luminance > threshold_value) * 255 
    
    # Convert the thresholded image to uint8 for contour detection 
    thresholded = thresholded.astype(np.uint8) 
    
    # Find contours of the bright areas 
    contours, _ = cv2.findContours(thresholded, cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_SIMPLE) 
    
    # Create a list to store the bounding boxes of bright areas 
    bright_areas = [] 
    
    # Iterate through contours and extract bounding boxes for contour in contours: 
    x, y, w, h = cv2.boundingRect(contour) 
    
    # Adjust y-coordinate based on bottom-left origin 
    y_bottom_left_origin = image.shape[0] - (y + h) bright_areas.append((x, y_bottom_left_origin, x + w, y_bottom_left_origin + h)) 
    
    # Store as (x1, y1, x2, y2) 
    # Print the identified bright areas 
    print("Bright Areas (x1, y1, x2, y2):") for area in bright_areas: print(area)

     

    More details

     

    Luminance and Exposure in an EXR Image:

    • An EXR (Extended Dynamic Range) image format is often used to store high dynamic range (HDR) images that contain a wide range of luminance values, capturing both dark and bright areas.
    • Luminance refers to the perceived brightness of a pixel in an image. In an RGB image, luminance is often calculated using a weighted sum of the red, green, and blue channels, where different weights are assigned to each channel to account for human perception.
    • In an EXR image, the pixel values can represent radiometrically accurate scene values, including actual radiance or irradiance levels. These values are directly related to the amount of light emitted or reflected by objects in the scene.

     

    The luminance line is calculating the luminance of each pixel in the image using a weighted sum of the red, green, and blue channels. The three float values [0.299, 0.587, 0.114] are the weights used to perform this calculation.

     

    These weights are based on the concept of luminosity, which aims to approximate the perceived brightness of a color by taking into account the human eye’s sensitivity to different colors. The values are often derived from the NTSC (National Television System Committee) standard, which is used in various color image processing operations.

     

    Here’s the breakdown of the float values:

    • 0.299: Weight for the red channel.
    • 0.587: Weight for the green channel.
    • 0.114: Weight for the blue channel.

     

    The weighted sum of these channels helps create a grayscale image where the pixel values represent the perceived brightness. This technique is often used when converting a color image to grayscale or when calculating luminance for certain operations, as it takes into account the human eye’s sensitivity to different colors.

     

    For the threshold, remember that the exact relationship between EV values and pixel values can depend on the tone-mapping or normalization applied to the HDR image, as well as the dynamic range of the image itself.

     

    To establish a relationship between exposure and the threshold value, you can consider the relationship between linear and logarithmic scales:

    1. Linear and Logarithmic Scales:
      • Exposure values in an EXR image are often represented in logarithmic scales, such as EV (exposure value). Each increment in EV represents a doubling or halving of the amount of light captured.
      • Threshold values for luminance thresholding are usually linear, representing an actual luminance level.
    2. Conversion Between Scales:
      • To establish a mathematical relationship, you need to convert between the logarithmic exposure scale and the linear threshold scale.
      • One common method is to use a power function. For instance, you can use a power function to convert EV to a linear intensity value.
      threshold_value = base_value * (2 ** EV)

      Here, EV is the exposure value, base_value is a scaling factor that determines the relationship between EV and threshold_value, and 2 ** EV is used to convert the logarithmic EV to a linear intensity value.

    3. Choosing the Base Value:
      • The base_value factor should be determined based on the dynamic range of your EXR image and the specific luminance values you are dealing with.
      • You may need to experiment with different values of base_value to achieve the desired separation of bright areas from the rest of the image.

     

    Let’s say you have an EXR image with a dynamic range of 12 EV, which is a common range for many high dynamic range images. In this case, you want to set a threshold value that corresponds to a certain number of EV above the middle gray level (which is often considered to be around 0.18).

    Here’s an example of how you might determine a base_value to achieve this:

     

    # Define the dynamic range of the image in EV
    dynamic_range = 12
    
    # Choose the desired number of EV above middle gray for thresholding
    desired_ev_above_middle_gray = 2
    
    # Calculate the threshold value based on the desired EV above middle gray
    threshold_value = 0.18 * (2 ** (desired_ev_above_middle_gray / dynamic_range))
    
    print("Threshold Value:", threshold_value)
    , ,
  • Cinematographers Blueprint 300dpi poster

    The 300dpi digital poster is now available to all PixelSham.com subscribers.

     

    If you have already subscribed and wish a copy, please send me a note through the contact page.

    , , , ,

Categories


Archive