The Virtual Production Revolution: LED Walls for Automotive Visualization

The landscape of film, television, and high-end visualization has undergone a seismic shift, largely thanks to the convergence of real-time rendering and innovative display technologies. At the forefront of this revolution is Virtual Production (VP), a groundbreaking methodology that leverages game engines like Unreal Engine and large-scale LED walls to create immersive, dynamic sets in real time. For industries like automotive, this isn’t just a trend; it’s a paradigm shift, offering unparalleled creative control, efficiency, and photorealism in visualizing vehicles. From cinematic car commercials to interactive configurators and design reviews, LED wall virtual production with Unreal Engine is transforming how we bring automotive visions to life. This comprehensive guide will delve into the technical intricacies, workflows, and best practices for harnessing this powerful combination, ensuring your 3D car models achieve their full potential in stunning, real-time environments.

We’ll explore everything from setting up your Unreal Engine project for nDisplay, integrating high-fidelity automotive assets, mastering real-time lighting with Lumen, and leveraging advanced features like Nanite and Sequencer. Whether you’re an Unreal Engine developer, a 3D artist, or a visualization professional, prepare to unlock the secrets to creating breathtaking automotive content on LED volumes, pushing the boundaries of what’s possible in real-time rendering.

The Virtual Production Revolution: LED Walls for Automotive Visualization

Virtual Production, at its core, is a suite of techniques that enables filmmakers and content creators to combine physical and virtual elements seamlessly and interactively on set. Unlike traditional greenscreen methods, which often delay creative feedback until post-production, VP allows for real-time visualization of digital environments and assets. When paired with expansive LED walls, this technology becomes particularly potent, especially for automotive visualization, where the interaction of light and reflections on vehicle surfaces is paramount.

Imagine filming a luxury sedan on a studio soundstage, but instead of a static backdrop, the LED wall behind and around the car displays a photorealistic digital environment—a bustling city street, a serene mountain pass, or an abstract studio. The reflections on the car’s paint, windows, and chrome elements dynamically react to this virtual environment as if it were truly there. This immediate, accurate feedback empowers directors, cinematographers, and designers to make creative decisions on the fly, saving significant time and budget while achieving unprecedented levels of realism and immersion. This real-time capability is a game-changer for car commercials, configurator demos, and even early-stage design exploration, where rapid iteration is crucial.

What is Virtual Production and Why LED Walls?

Virtual Production encompasses various techniques, including real-time camera tracking, motion capture, and in-camera visual effects (ICVFX) using LED volumes. LED walls serve as dynamic, emissive light sources and backdrops, generating realistic indirect lighting and reflections on physical objects within the scene. For automotive visualization, this is revolutionary. The reflective surfaces of vehicles are notoriously challenging to integrate convincingly with traditional greenscreen composites. Any discrepancy in lighting, reflection, or perspective quickly breaks immersion.

LED walls solve this by providing accurate, physically-based light interaction. The virtual environment rendered on the LED panels directly illuminates the physical car, casting realistic shadows, reflections, and ambient color spill. This natural interaction significantly reduces post-production work, as the majority of the composite is achieved “in camera.” Furthermore, the immersive nature of the LED volume allows talent (drivers, actors) to react to their environment authentically, enhancing performance and believability. It transforms a sterile studio into a vibrant, living world, all driven by the real-time rendering power of Unreal Engine.

The Power of LED Walls in Automotive Visualization

For the automotive industry, LED walls unlock a new era of visualization possibilities. From marketing to engineering, the advantages are profound:

  • Unmatched Realism: Dynamic reflections and physically accurate light interaction on metallic paints, glass, and chrome.
  • Creative Freedom: Instantly switch environments, time of day, weather conditions, or even conceptual backdrops without moving the physical car.
  • Cost and Time Efficiency: Eliminate the need for expensive location shoots, permits, and extensive travel. Reduce post-production costs associated with complex compositing.
  • Interactive Design Reviews: Designers can evaluate new vehicle models in various realistic contexts, making informed decisions faster.
  • Configurator Showcases: Develop high-end interactive experiences where customers can customize a vehicle and see it rendered in a photorealistic environment instantly.

These benefits highlight why platforms like 88cars3d.com, which offer high-quality, pre-optimized 3D car models, are becoming essential resources. Starting with clean, well-optimized assets ensures that the demanding real-time requirements of an LED wall virtual production are met, allowing artists to focus on creative direction rather than fixing geometry or textures.

Setting Up Unreal Engine for LED Wall Production (nDisplay)

Bringing your automotive vision to an LED wall requires a specialized Unreal Engine configuration centered around the nDisplay framework. nDisplay is Unreal Engine’s powerful multi-display rendering solution, designed to drive multiple projectors, monitors, or LED panels from a single source or a cluster of synchronized machines. This setup ensures that the virtual environment scales correctly across the physical LED volume, maintaining perspective and fidelity for the camera.

nDisplay Configuration Essentials

Setting up nDisplay correctly is critical for a successful LED wall workflow. It involves careful planning of your physical LED volume layout, network configuration, and Unreal Engine project settings. The core of nDisplay is the nDisplay config asset, a UDataAsset that defines your cluster of machines (nodes), the screens they drive, and the geometry of your LED volume. For comprehensive guidance on setting up nDisplay, refer to the official Unreal Engine documentation at https://dev.epicgames.com/community/unreal-engine/learning.

  1. Physical Layout Mapping: Accurately measure your LED panels and their arrangement (e.g., straight wall, curved wall, ceiling). This information is crucial for building your nDisplay configuration.
  2. nDisplay Config Asset: In Unreal Engine, create a new nDisplay Config asset. Define each display panel as a “Screen” within the config, specifying its resolution and physical dimensions. Then, arrange these screens spatially to match your physical LED volume.
  3. Cluster Setup: Specify the “Nodes” (individual PCs) in your cluster. Each node will be responsible for rendering a specific portion of the virtual environment to one or more screens. Ensure robust network connectivity (10GbE or higher recommended) between the primary “manager” node and all “render” nodes to synchronize frames and data efficiently.
  4. Calibration: Accurate calibration of the LED panels is paramount. This involves color calibration (to ensure consistent color across all panels) and geometric calibration (to account for any misalignment or seams between panels). Tools like disguise xR or dedicated LED wall processors assist in this, often feeding their calibration data into Unreal Engine or providing geometry distortion maps.
  5. Camera Tracking Integration: For in-camera VFX, a robust camera tracking system (e.g., Mo-Sys, Stype, Ncam) must be integrated. This system provides the real-time position and rotation of the physical camera, allowing Unreal Engine to render the virtual environment from the correct perspective for the physical camera’s view frustum. This dynamic perspective correction is vital for avoiding parallax errors and ensuring a seamless composite.

Project Structure & Performance Baselines

A well-structured Unreal Engine project is fundamental for efficient LED wall production, especially concerning performance. High-fidelity automotive scenes, coupled with the demands of multi-display rendering at high resolutions and framerates (often 60fps or higher), necessitate meticulous optimization from the outset.

  • Engine Scalability: Start by adjusting engine scalability settings to “Cinematic” or “Epic” to ensure maximum visual quality. However, be prepared to iteratively optimize specific features.
  • Content Structure: Organize your environments, car models, materials, and Blueprints into logical folders. This improves workflow and makes debugging easier.
  • Persistent Level & Sub-Levels: Utilize a persistent level for your nDisplay config and core camera setup, then load environment elements and car models into separate sub-levels. This allows for easier management, collaborative editing, and selective loading/unloading of assets.
  • Performance Budgets: Establish clear performance budgets early. For example, aim for specific polygon counts for environments (though Nanite mitigates this for static meshes), draw calls per frame, and texture memory usage. Monitoring these metrics with Unreal Engine’s built-in profilers (Stat commands like stat GPU, stat unit, stat rhi) is crucial.
  • Resolution & Framerate: Understand the target resolution and framerate for your LED volume. A typical LED wall might be composed of panels summing up to 8K, 10K, or even higher resolutions. Driving this at 60fps on multiple synchronized machines demands extreme optimization.

Prioritizing stable performance ensures a smooth on-set experience, minimizing hitches or dropped frames that can ruin a take. Early optimization and consistent profiling throughout development are your best allies.

Integrating and Optimizing High-Quality 3D Car Models for VP

The success of any automotive visualization on an LED wall hinges on the quality and optimization of your 3D car models. Since the virtual environment rendered on the LED wall interacts directly with the physical car, any imperfections in the digital asset will be magnified. Sourcing or creating models with clean topology, proper UVs, and PBR-ready materials is non-negotiable.

Sourcing and Preparing High-Fidelity Assets

When sourcing automotive assets from marketplaces such as 88cars3d.com, you’re looking for models specifically designed for real-time rendering. Key attributes include:

  • Clean Topology: Well-structured mesh with quads, minimal triangles, and no non-manifold geometry. This ensures proper deformation if animation is needed and allows for easier LOD generation.
  • Optimized Polygon Counts: While Nanite has revolutionized high-poly handling, good base topology still matters for LODs, physics, and compatibility. A production-ready vehicle model might range from 250,000 to 1 million+ triangles for the full detail, including interior.
  • Proper UV Mapping: Non-overlapping UVs are essential for PBR texture application and lightmap generation (if needed). Multiple UV sets are often beneficial for different texture types (e.g., base color, lightmaps, decals).
  • PBR-Ready Materials: Models should come with or be easily adaptable to physically based rendering (PBR) workflows, using texture maps for Albedo/Base Color, Metallic, Roughness, Normal, and potentially Ambient Occlusion.
  • Multiple File Formats: FBX is a standard for static meshes and animation, offering robust import options into Unreal Engine. USD (Universal Scene Description) and USDZ are increasingly becoming powerful alternatives for complex scene description, hierarchical data, and cross-application compatibility, especially valuable in collaborative virtual production pipelines.

Upon import into Unreal Engine, always inspect the mesh and materials. Use the Static Mesh Editor to check for inverted normals, scale issues, and material slot assignments. Ensure your imported models maintain their real-world scale, as this is crucial for accurate lighting and physics simulation.

Leveraging Nanite for Cinematic Detail

Nanite, Unreal Engine’s virtualized geometry system, is a game-changer for high-fidelity assets in virtual production, especially for detailed automotive models. Traditionally, performance constraints limited the geometric detail of models in real-time environments. Nanite removes this barrier, allowing artists to import and render models with millions, or even billions, of polygons without significant performance overhead.

For high-resolution 3D car models, Nanite enables:

  • Extreme Detail: Import CAD data or highly detailed sculpts directly, preserving intricate details like panel gaps, interior stitching, and tire treads without needing to retopologize for real-time.
  • Efficient Streaming: Nanite intelligently streams and renders only the necessary geometric detail based on camera distance and screen space, drastically reducing memory footprint and GPU workload compared to traditional mesh rendering.
  • Simplified LODs: Nanite effectively eliminates the need for manual LODs for static meshes, as it handles the level of detail automatically. This frees up artist time previously spent on generating and managing multiple LOD levels.

To enable Nanite for your car models, simply import them as static meshes and enable the “Support Nanite” option in the Static Mesh Editor’s Details panel. Be aware that Nanite primarily works with opaque meshes and has specific considerations for complex material setups, though it’s continually being improved. While Nanite is revolutionary, understanding its limitations and best practices (e.g., ensuring meshes have closed volumes, careful material setup) is still important for optimal performance in an nDisplay cluster.

Real-Time Lighting, Materials, and Compositing

Achieving photorealistic results on an LED wall largely depends on how well your virtual environment’s lighting and materials interact with the physical car, and how seamlessly the physical and virtual elements are composited. Unreal Engine provides a powerful suite of tools to master these aspects.

Dynamic Lighting with Lumen and Global Illumination

Lumen, Unreal Engine 5’s fully dynamic global illumination and reflections system, is a cornerstone for achieving photorealistic lighting in LED wall virtual production. Lumen provides:

  • Real-time GI: Accurately simulates bounced light, ensuring that the car model within the virtual environment receives realistic ambient lighting from the LED wall itself and the virtual world. For instance, a sunset rendered on the LED wall will cast warm, orange bounced light onto the physical car.
  • Dynamic Reflections: Creates high-quality, real-time reflections, crucial for the metallic and glass surfaces of a car. As the virtual environment changes, so do the reflections on the vehicle, enhancing realism.
  • Iterative Lighting: Allows lighting artists to make changes on the fly and see immediate results, greatly speeding up the look development process compared to baked lighting workflows.

When setting up lighting for an LED wall scene:

  • Match Physical & Virtual: Ensure your virtual light sources (Sun & Sky, directional lights, skylights) align with any physical light sources on set to create a cohesive lighting environment.
  • Reflective Surfaces: Pay close attention to materials, especially car paint, glass, and chrome, to ensure they react correctly to Lumen’s GI and reflections.
  • Performance Considerations: While Lumen is dynamic, it has a performance cost. Optimize light complexity and be mindful of scene density. For high-performance nDisplay clusters, consider using hardware ray tracing for Lumen for even higher quality, provided your GPUs support it.

For traditional lighting, static light baking (using Lightmass or GPU Lightmass) can offer extremely high-quality, pre-computed global illumination. While less dynamic than Lumen, it’s highly performant and can be a good choice for static background elements or specific lighting scenarios that don’t change.

PBR Materials for Automotive Realism

The materials applied to your 3D car models are critical for realism. PBR (Physically Based Rendering) materials are designed to react to light in a physically accurate manner, resulting in consistent and believable appearances under diverse lighting conditions. In Unreal Engine’s Material Editor, you’ll typically create complex car paint shaders, realistic glass, and detailed interior materials.

  • Car Paint: A sophisticated car paint material often involves multiple layers: a base metallic layer (using Metallic and Roughness maps), a clear coat layer (simulated with a clear coat shading model or custom nodes for additional reflections and fresnel), and flake normal maps for subtle metallic sparkle. Parameters like clear coat intensity, roughness, and color tint are crucial for achieving specific automotive finishes.
  • Glass & Translucency: For windshields, windows, and headlights, use translucent materials. Correctly setting up refraction, roughness, and Fresnel parameters is key. Consider using ‘Thin Translucency’ for optimal performance where appropriate.
  • Tires & Rubber: Use detailed normal maps for tire treads, coupled with low metallic and medium roughness values to simulate rubber.
  • Interior Materials: Fabric, leather, plastic, and metal surfaces inside the car require distinct PBR setups. Subtle subsurface scattering for leather and fabric can add significant depth and realism.

Always test your materials under various lighting conditions to ensure they hold up. The Material Editor allows for intricate layering and node-based logic, giving you immense control over every aspect of your car’s appearance.

In-Camera VFX & Composure Workflow

In-Camera VFX (ICVFX) refers to the process of compositing physical and virtual elements directly within the camera’s view, largely facilitated by LED walls. Unreal Engine’s Composure plugin is essential for handling the intricate layers and chromakeying required for this. Composure enables real-time layering of foreground plates (the physical car and actors), virtual backgrounds (the environment on the LED wall), and often mid-ground elements. It integrates directly with camera tracking data to maintain perspective.

A typical Composure workflow involves:

  1. Camera Tracking: Integrating the real-time camera tracking data into Unreal Engine is the first step. This data drives the virtual camera within Unreal, ensuring its perspective matches the physical camera.
  2. Input Layers: Composure manages various input layers:
    • Background Layer: The virtual environment rendered by nDisplay on the LED wall.
    • Foreground Layer: The live feed from the physical camera.
    • CG Layer: Any additional virtual elements (e.g., reflections, digital set extensions, or the digital car if it’s entirely virtual) that need to be composited over the foreground.
  3. Keying & Spill Suppression: Although LED walls reduce the need for greenscreen, there might still be situations requiring keying (e.g., if a partial greenscreen is used for interactive elements). Composure offers chromakeying nodes and spill suppression to clean up edges.
  4. Output & Monitoring: The final composite is output to monitors for the director and cinematographer to review in real-time. This immediate feedback loop is one of the biggest advantages of ICVFX.
  5. Achieving a seamless blend often requires careful attention to color grading, lens distortion correction (matching the physical lens), and depth of field adjustments within Composure to ensure consistency between the physical and virtual realms.

    Interactive Elements and Cinematic Storytelling

    Beyond static shots, Unreal Engine empowers virtual production with interactive capabilities and cinematic tools that elevate automotive content. From dynamic configurators to exquisitely choreographed car sequences, these features provide unprecedented control and creative freedom.

    Blueprint for Dynamic Scenarios

    Blueprint visual scripting in Unreal Engine allows artists and designers to create complex interactive systems without writing a single line of code. For automotive virtual production, Blueprint can drive dynamic scenarios:

    • Automotive Configurators: Imagine a client on set requesting to see a car in a different color, with different wheels, or with specific interior trim. With Blueprint, you can create a real-time configurator that allows instant swapping of materials, meshes (e.g., wheel variations), or even entire car models. This can be controlled via a simple UI on a tablet, directly impacting the car model rendered on the LED wall.
    • Environmental Controls: Blueprint can be used to control the virtual environment displayed on the LED wall. Change the time of day, weather conditions (rain, snow effects using Niagara), or seamlessly switch between entirely different virtual locations with the press of a button.
    • Interactive Elements: Animate car doors opening, the trunk lifting, or the suspension reacting to uneven terrain, all driven by Blueprint. This allows for dynamic shots that highlight vehicle features on demand.
    • Camera Automation: While camera tracking handles the physical camera, Blueprint can be used to set up virtual camera paths for specific, repeatable shots or to automate certain camera movements within the virtual environment.

    The flexibility of Blueprint greatly enhances the interactive possibilities on a virtual production set, allowing for rapid iteration and creative exploration without breaking the flow of production.

    Sequencer for Polished Cinematics

    Unreal Engine’s Sequencer is a powerful multi-track editor for creating cinematic sequences, animations, and camera movements. It’s the equivalent of a non-linear editor (NLE) within Unreal Engine, but for real-time 3D environments. For automotive virtual production, Sequencer is indispensable for:

    • Multi-Camera Setups: Define and choreograph multiple virtual cameras within your scene. You can easily cut between these cameras, just like in a traditional film edit, allowing directors to preview complex shot compositions in real time.
    • Vehicle Animation: Animate specific car components – doors opening, wheels turning, lights flashing, steering wheel rotation – to create dynamic and engaging shots. Keyframe animations can be precisely timed with camera moves.
    • Environmental Animations: Animate elements in your virtual environment, such as moving clouds, passing traffic (if virtual), or subtle environmental effects, to add life and motion to your scene.
    • Camera Movement & Rigging: Create complex camera dollies, cranes, and jib movements within the virtual world. These virtual camera animations can then be synchronized with the physical camera’s movements or used for virtual fly-throughs.
    • Visual Effects Integration: Incorporate Niagara particle effects (e.g., smoke, dust, rain) directly into your cinematic sequences, timing them perfectly with vehicle actions or environmental changes.

    Sequencer allows for pre-visualization of entire automotive commercials or scenes, enabling directors to experiment with timing, pacing, and emotional impact long before the physical production begins. When combined with nDisplay and live camera tracking, Sequencer becomes the central hub for orchestrating complex, real-time cinematic events on the LED volume.

    Performance Optimization and Best Practices for LED Walls

    While Unreal Engine and Nanite offer incredible power, driving a large-scale LED wall at high framerates (e.g., 60fps) across multiple synchronized machines (nDisplay cluster) is one of the most demanding real-time rendering tasks. Meticulous optimization is not just recommended; it’s essential for a stable and fluid virtual production experience.

    Advanced LODs and Culling Strategies

    Even with Nanite handling high-poly static meshes, other assets and situations still benefit from traditional LODs and aggressive culling strategies, especially for smaller, dynamic objects or animated elements.

    • Manual LODs for Skeletal Meshes: For animated characters or dynamic objects that can’t leverage Nanite, manually create multiple Levels of Detail (LODs). This reduces polygon counts for objects far from the camera, improving performance.
    • Hierarchical LODs (HLODs): For large, static environments composed of many smaller meshes (e.g., a cityscape), HLODs can group these meshes into a single, optimized mesh for distant views, significantly reducing draw calls.
    • Occlusion Culling: Unreal Engine automatically performs occlusion culling, not rendering objects hidden behind others. Ensure your scene geometry is designed to facilitate this (e.g., solid walls).
    • Distance Culling: Set explicit culling distances for non-critical assets (e.g., small props, distant foliage) to prevent them from rendering when they are too far to be visible.
    • Frustum Culling: Only objects within the camera’s view frustum are rendered. While automatic, ensuring the virtual environment on the LED wall is only rendering what’s needed for the active camera’s frustum (via nDisplay’s per-view rendering) is paramount.

    Each nDisplay render node processes its specific frustum for its assigned LED panel(s). Therefore, optimizing scene complexity so that each node can maintain the target framerate is crucial for the entire cluster’s stability. Any single struggling node can introduce stutter or dropped frames across the whole wall.

    Texture Streaming and Memory Management

    Texture data can quickly consume vast amounts of GPU memory, especially with high-resolution PBR textures across a large virtual environment and detailed car models. Efficient management is key:

    • Texture Streaming: Enable texture streaming for most textures. Unreal Engine dynamically loads higher-resolution mip maps closer to the camera and lower-resolution ones further away, optimizing memory usage. Configure streaming pools carefully.
    • Virtual Textures (Sparse Volume Textures): For extremely large texture sets or complex procedural materials, explore Virtual Textures. These optimize memory by only streaming the visible parts of a massive texture.
    • Resolution Optimization: Use appropriate texture resolutions. A 4K texture might be overkill for a small, distant prop but essential for a vehicle’s main body paint. Consolidate textures into atlases where possible to reduce draw calls.
    • GPU Memory Budgets: Monitor GPU memory usage (using stat GPU and stat memory) across all nDisplay nodes. If one node hits its memory limit, it can cause crashes or performance degradation.
    • Asset Compression: Utilize appropriate texture compression settings (e.g., BC1, BC3, BC7) to balance quality and memory footprint. For normal maps, use BC5.

    Effective texture and memory management ensures that your highly detailed 3D car models from sources like 88cars3d.com can be fully showcased without bottlenecks.

    Practical Tips for Smooth VP Workflows

    Beyond technical optimizations, established workflows and best practices contribute significantly to a successful LED wall virtual production.

    • Pre-Visualization is Key: Before physical setup, use Unreal Engine’s Sequencer and nDisplay to pre-visualize entire shots and scene transitions. This helps identify potential issues, refine camera movements, and confirm creative choices early.
    • Calibration Checks: Regularly verify LED wall color calibration and camera tracking calibration. Small inaccuracies can lead to noticeable discrepancies in the final composite.
    • Robust Network: Invest in a high-bandwidth, low-latency network for your nDisplay cluster. A dedicated network for inter-node communication is highly recommended.
    • Version Control: Use Perforce or Git to manage your Unreal Engine project. This is crucial for collaborative environments and allows for easy rollback to previous stable versions.
    • Performance Monitoring: Keep performance profilers open on a dedicated monitor during production. Real-time feedback on framerate, draw calls, and GPU usage allows for immediate identification and resolution of issues.
    • Reference Passes: Capture reference greenscreen passes of the physical car on the LED volume, and clean plate images of the LED wall, to aid in any potential post-production adjustments, though the goal is to minimize this.
    • Collaboration & Communication: Virtual production thrives on tight collaboration between directors, cinematographers, lighting artists, and Unreal Engine operators. Clear communication channels are vital for smooth execution.

    By integrating these practices, studios can harness the full potential of Unreal Engine and LED wall virtual production to create stunning automotive visualizations that were previously unimaginable.

    Conclusion

    The synergy between Unreal Engine and LED wall technology has undeniably ushered in a new era for automotive visualization and virtual production. By combining the real-time rendering prowess of Unreal Engine with the immersive capabilities of LED volumes, creators can achieve unprecedented levels of realism, creative flexibility, and production efficiency. We’ve explored the intricate dance of setting up nDisplay, integrating high-fidelity 3D car models with the help of Nanite, mastering dynamic lighting with Lumen, and leveraging Blueprint and Sequencer for interactive and cinematic storytelling. Crucially, we’ve emphasized the importance of rigorous performance optimization, a non-negotiable aspect for driving these demanding, multi-display setups.

    The journey into LED wall virtual production is both technically challenging and immensely rewarding. It demands a blend of artistic vision and technical expertise, but the payoffs—stunning visuals, accelerated workflows, and unparalleled creative control—are transformative. As this technology continues to evolve, the ability to create truly immersive and believable automotive content will only grow. For your next automotive project, consider harnessing the power of Unreal Engine and LED walls, and remember that sourcing high-quality, optimized assets from platforms like 88cars3d.com is your first step towards building these visually spectacular real-time experiences. Dive in, experiment, and let the real-time revolution empower your creative vision.

    Featured 3D Car Models

    Nick
    Author: Nick

    Lamborghini Aventador 001

    🎁 Get a FREE 3D Model + 5% OFF

    We don’t spam! Read our privacy policy for more info.

Leave a Reply

Your email address will not be published. Required fields are marked *