flame-engine / flame-engine/flame

[Flame 3D] Create more distinct types of light source

Open
#3,294 3 comments 3 reactions 0 assignees View on GitHub
enhancement flame_3d hacktoberfest
Dominant language
Dart
Stars
10.8k
Forks
1k
Avg merge
1d 20h
Merged PRs (30d)
21

Description

### What could be improved

More Details for Point Light and Further Breakdown of Ambient Light

Points should be visualized by a plain, circled dot.
But they should have a radius parameter, such that when the radius is larger than zero,
light will be emitted from a spherical surfaces with the specified radius.

Also, Lights with larger size should have softer shadows and specular highlights.

### Why should this be improved

I've just watched Luan's Presentation on Flutter and Friends, 2024 and one part that stood to me is Light Sources.

I think it's very important, because Lights have significant importance on how things are rendered on screen.
So we will need more distinct types of lights for better rendering accuracy, and a few new addtions;

- Spot Light
- Area Light
- Sun Light

## Spot Light

A Spot light should emit a cone-shaped beam of light from the tip of the cone, in a given direction.

![spot shape and spotlights](https://github.com/user-attachments/assets/a07230e0-21f0-413b-a668-d4bd4736acd0)

It's constructor should have parameters like:

1. Power [in watts]
2. Radius
3. Size in degree/radian
4. Clip Start
5. Blend

## Area Light

Area light simulates light originating from a surface (or surface-like) emitter.
For example, a TV screen, office neon lights, a window, or a cloudy sky are just a few types of area light.

It's constructor should have parameters like:

1. Power [ in watts]
2. Shape [Rectangle, Circle, Star, Ellipse etc]
3. Size [Bounding Box for the Shape]

## Sun Light

A sun light provides light of constant intensity emitted in a single direction from infinitely far away.
A sun light can be very handy for a uniform clear daylight open-space illumination.

It's similar to the Ambient Light Luan described in his talks.
But i believe there are quite some distinction;

### Risks

I'm just an intern, or at best a Junior so I can't state with great accuracy the technical difficulty involved or risks;
But one thing i can say it will change some API. Luckily the work on Flame 3D has just begun so not a big change like that;

### More information

For more info, please visit[ blender reference for light soure](https://docs.blender.org/manual/en/2.90/render/lights/light_object.html)

### Other

- [ ] Are you interested in working on a PR for this?

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.