![]() |
New image mode
1 Attachment(s)
I'm not sure how possible this is as I'm no programmer... but I propose a new image mode.
Right now, if you seteffect, there's basically nothing you can do to get pass it. Showing a light effect BARELY does anything to show a 'hole' in seteffect, and if you seteffect(0,0,0,1)(pure blackness, no alpha), it wouldn't make a difference at all. The idea is to add a setimgmode that subtracts from setefffect. This mode would work much like the transparency mode, but it would make 'holes' in seteffect. Because as of now... it's near impossible to do any interesting dark/light effect kind of things. Here's an attachment of a mock-up of what I mean. |
That would seriously be awesome to implent for quests or caves.
I support this! :) |
Where do I sign?
|
Quote:
|
seteffect is currently just a polygon being drawn over the screen, I don't know how such an image mode would be done.
|
Me either, but I'm just hoping he finds it worthy enough to figure something out. I think it'd be a huge benefit for servers, especially those that are quest-based.
|
I'm sure did this before....
You have to use showpoly() to draw a poly over the screen, set the mode on that, then set the mode on the light effect. |
What I'm asking is not able to be replicated, as far as I know. I mean... I could make a cheap script with poly's and such... but it won't have by far the amount of flexibility this will.
|
The problem is the complexity of such kind of effect. Light effects can be done by a simple graphic operation, but for a "negative hole" effect you need a mask (basicly a texture of the size of the screen) which is not supported by video hardware. The only way to achieve such effect is to manually generate a mask, e.g. by creating a polygon and cut out parts which should not be hidden, or by dividing the screen into a grid and display different light effects on each grid depending on how much light falls onto that spot.
|
So is there no hope for this addition... or something to just wait for and hope?
|
I know this will make me sound stupid, but ...
When redraw() is called, or however it works, it goes through each pixel, correct? If you could make an area that it doesn't set it, even an array of certain pixels (for example, at 300, 400 don't show the effect) then just have it not draw there. Would not something like this work, and then just have a function to get all the pixels in a circle or box? |
| All times are GMT +2. The time now is 03:04 AM. |
Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2026, vBulletin Solutions Inc.
Copyright (C) 1998-2019 Toonslab All Rights Reserved.